home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / BBS / PB201SW.ZIP / MACS.LZH / M1
Encoding:
Text File  |  1996-04-15  |  397.6 KB  |  17,092 lines

  1. FMORECTLEaddvar(%var%u+-1=u)
  2. inpline(seeking.%NODE%,1)
  3. setequal(p=%ARESP%)
  4. inpline(seeking.%NODE%,2)
  5. if (&p)=(1) then seekto(/:lastmsg/,%ARESP%,^:u^)
  6. if (&p)=(2) then seekfrom(/:lastmsg/,%ARESP%,^:u^)
  7. if (&p)=(3) then seekdesc(/:lastmsg/,%ARESP%,^:u^)
  8. if (&p)=(4) then seektext(/:lastmsg/,%ARESP%,^:u^)
  9. setequal(u=0)
  10. return
  11. WIPCHGCTL∩*thetop
  12.  
  13. setnv(high=22)
  14. setnv(NoInfo=1)
  15. loadsub(control\ewipscr.ctl,setnv(wipf=chg))
  16.  
  17. *initBox
  18. setequal(c=14~listbox~%maxarea%~22~)
  19. jump (wipc)
  20.  
  21. goto (listfa)
  22.  
  23. *GetResp0
  24. setequal(c=0A~)
  25. jump (wipc)
  26.  
  27. jump (getInput)
  28. writeln(Response from user: "%resp%")
  29. if (%nv%wiprestreq%)=(1) then goto (thetop)
  30. if (%resp%)=(Help) then goto (olhelp)
  31. if (%resp%)=(Exit) then goto (ret4)
  32. if (%resp%)=(quit) then goto (ret4)
  33. setequal(b=%resp%)
  34. find(&b,,)
  35. if (%aresp%)<=(1) then goto (NotListC)
  36. addvar(%aresp%+-1=e)
  37. addvar(%aresp%+1=f)
  38. get(&b,1,%var%e)
  39. setnv(wipc=%aresp%)
  40. get(&b,%var%f,1000)
  41. setequal(b=%aresp%)
  42. if (%var%b)=(-1) then goto (more)
  43. setequal(/resp=%var%b)
  44. goto (sa)
  45. goto (getresp0)
  46. *NotListC
  47. find(&b,;)
  48. if (%aresp%)<=(1) then goto (NoCmnd)
  49. addvar(%aresp%+-1=e)
  50. addvar(%aresp%+1=f)
  51. get(&b,1,%var%e)
  52. SetNv(WipC=%aresp%)
  53. setnv(cText=)
  54. len(%var%b)
  55. if (%var%f)<=(%aresp%) then
  56. get(&b,%var%f,1000)
  57. SetNv(Ctext=%aresp%)
  58. endif
  59. ;if (%nv%wipc%)=(searchtext) then setNv(key=%nv%Ctext%)
  60. *NoCmnd
  61. setnv(wtxt=)
  62. goto (getResp0)
  63.  
  64.  
  65. *listfa
  66. setequal(d=0)
  67. setnv(d=0)
  68.  
  69. *more
  70. setequal(d=%nv%d%)
  71. setequal(u=0)
  72.  
  73. *rt
  74. inc(d)
  75. if (%var%d)>(%maxarea%) then goto (nomore)
  76. addvar(%var%d+-1=e)
  77. multvar(%var%e*132=e)
  78. addvar(%var%e+11=e)
  79. fread(msgareas.bbs,%var%e,40,n)
  80. addvar(%var%e+116=e)
  81. fread(msgareas.bbs,%var%e,2,a)
  82. cvi(%var%a)
  83. if (%aresp%)>(%sec%) then goto (rt)
  84. setequal(e=%var%d)
  85. setlen(e=5)
  86. inc(u)
  87. setequal(c=07~listbox~%var%e %var%n~)
  88. writeln(%var%e %var%n)
  89. if (%nv%high%)<>() then goto (nh)
  90. if (%var%u)=(%resp%) then goto (ga0)
  91. *nh
  92. setnv(d=%var%d)
  93. if (%nv%high%)<>() then jump (wipc)
  94. setequal(d=%nv%d%)
  95. if (%nv%high%)=() then goto (rt)
  96. if (%var%u)>(%nv%high%) then goto (donef)
  97. goto (rt)
  98.  
  99. *NoMore
  100.  if (%nv%high%)=() then goto (ga0)
  101. ; writeln(No more matches to the text you specified could be found.)
  102. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  103. ; jump (okbox0)
  104.  goto (donef)
  105. ; goto (getresp0)
  106.  
  107. *GCHAR
  108. COMPRINT(%NV%TEXT%)
  109. SETEQUAL(A=0)
  110. DO
  111. COMKEY
  112. ASCII
  113. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  114. INC(A)
  115. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  116. IF(%ARESP%)=(&B) THEN RET
  117. IF(&A)>(50) THEN RET
  118. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  119. DELAY18TH(2)
  120. LOOP
  121. *WIPC
  122. LOCALKEY(1)
  123. IFNOTTRUE(GOTO(NOLKEY))
  124. SYSKEYCHECK
  125. SETEQUAL(/RESP=)
  126. SETEQUAL(/RESP=)
  127. *NOLKEY
  128. CCARRIER
  129. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  130. CHECKSUM(%VAR%C)
  131. SETEQUAL(B=6)
  132. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  133. SETNV(PBACK=)
  134. JUMP(GCHAR)
  135. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  136. setequal(c=%aresp%)
  137. SETEQUAL(/IBUFF=%NV%PBACK%)
  138. LEN(%NV%PBACK%)
  139. SETEQUAL(/IBUFF0=%ARESP%)
  140. SETEQUAL(/ARESP=%VAR%C)
  141. RET
  142. *NOC0
  143. log(<<,Carrier lost.)
  144. quitbbs
  145.  
  146. *wipask
  147. loadsub(control\wipask.ctl)
  148. ret
  149.  
  150. *getinput
  151. writeln(Waiting for input from remote user.)
  152. setequal(y=180)
  153. jump (wipask)
  154. if (%aresp%)<>(24) then ret
  155. loadsub(control\wipask.ctl,goto(twarn))
  156. setequal(y=60)
  157. jump (wipask)
  158. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  159. ret
  160.  
  161. *donef
  162. ;inc(d)
  163. setnv(d=%var%d)
  164. write(Updating list box on user's screen ... )
  165. setequal(c=07~listbox~-1~)
  166. jump (wipc)
  167. setequal(c=0F~listbox~Change Conference~1~1~2~)
  168. jump (wipc)
  169. setequal(c=0F~RecCount~22~1~0~1~)
  170. jump (wipc)
  171. setequal(c=0F~Exit~Exit~1~1~3~)
  172. jump (wipc)
  173. setequal(c=0F~Scrl_UP~~1~1~4~)
  174. jump (wipc)
  175. setequal(c=0F~Scrl_Dn~~1~1~5~)
  176. jump (wipc)
  177. setequal(c=0F~Page_Up~~1~1~6~)
  178. jump (wipc)
  179. setequal(c=0F~Page_Dn~~1~1~7~)
  180. jump (wipc)
  181. setequal(c=0A~)
  182. jump (wipc)
  183. writeln(Done!)
  184. goto(getresp0)
  185.  
  186. *okbox0
  187. Jump (wipc)
  188. comlineinput(180,l)
  189. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  190. if (%resp%)=() then goto (okbox)
  191. ret
  192.  
  193. *notext
  194. writeln(No text was specified.  Enter some text to search for and try again...)
  195. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  196. jump (okbox0)
  197. goto (getresp0)
  198.  
  199. *sa
  200. MenuEqual(/RESP=%RESP%)
  201. Number(%RESP%)
  202. ifnottrue(goto(bds))
  203. setequal(b=%resp%)
  204. CmpValO(%MAXAREA%,%var%b)
  205. IfTrue (goto(bds))
  206. setnv(high=)
  207. goto (listfa)
  208. *ga0
  209. setequal(/resp=%var%d)
  210. setequal(b=%var%d)
  211. setnv(d=%var%d)
  212. SelArea(%var%b)
  213. EnufSec(%AREASEC%)
  214. IfnotTrue(Goto (bds))
  215. ListFile(areas\farea%var%b)
  216. ;upload areas are AREAS\FAU%VAR%B
  217. if (%FAREA%)=(AREAS\FAREA%var%b) then goto (fsetup)
  218. goto (seled)
  219.  
  220. *fsetup
  221. selfarea(1)
  222. setequal(/lastdown=1)
  223. *seled
  224. setequal(c=13~Area #%var%b: %AREANAME% is now selected!  )
  225.  
  226. if (%AREAPVT%)=(Y) then setequal(c=%var%cPrivate mail is allowed in this area)
  227. if (%AREAPVT%)=(N) then setequal(c=%var%cNo private mail is allowed in this area)
  228. if (%AREAFPUB%)=(Y) then setequal(c=%var%c, All messages are forced public)
  229. if (%AREAFPVT%)=(Y) then setequal(c=%var%c, All messages are forced private)
  230. if (%MSGNET%)=(Y) then setequal(c=%var%c, Netmail is supported in this area)
  231. if (%MSGFNET%)=(Y) then setequal(c=%var%c, All mail in this area is Netmail)
  232. log(--,Joined Conference #%var%b)
  233. setequal(c=%var%c~Area Selected!~1~)
  234. jump (okbox0)
  235. setnv(dispdir=areas\)
  236. loadsub(control\newdisp.ctl,setnv(file=welc%nv%d%))
  237. setnv(d=)
  238. SetEqual(/LASTMSG=%var%b)
  239. seek(areas\news/:lastmsg/.asc)
  240. iftrue(loadmem(control\macros\cnfnews.ctl))
  241. Return
  242.  
  243. *bds
  244. loadmem(control\macros\badsel.ctl)
  245.  
  246. *okbox0
  247. Jump (wipc)
  248. *tryr0
  249. comlineinput(180,l)
  250. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  251. if (%resp%)=() then goto (tryr0)
  252. ret
  253.  
  254. *ret4
  255. inpclose
  256. return
  257.  
  258.  
  259.  
  260. *OlHelp
  261. loadsub(control\exitwip.ctl)
  262. SetNv(AtPrompt=Yes)
  263. SetNv(Helpoption=7)
  264. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  265. goto (thetop)
  266. CHATLOGCTL   if (%NV%logchat%)<>() then
  267.     setequal(b=[Chat log closed])
  268.     setlen(b=80)
  269.     localwrite(1,12,7,1,%VAR%B)
  270.     jump (closeChatLog)
  271.     return
  272.   endif
  273.   setequal(b=[Now logging to LOGS\CHAT.%NODE%])
  274.   setlen(b=80)
  275.   localwrite(1,12,7,1,%VAR%B)
  276.   setnv(logchat=logs\chat.%NODE%)
  277.   appendto(%NV%logchat%,-----------------------------------------------------------)
  278.   appendto(%NV%logchat%,[Logging chat session between %sysop% and %name% on %date% at %time%])
  279. return
  280.  
  281. *closeChatLog
  282.   jump (logSysToDisk)
  283.   jump (logUsrToDisk)
  284.   appendto(%NV%logchat%,[Ending chat log at %time% on %date%])
  285.   setnv(logchat=)
  286. ret
  287.  
  288. *logSysToDisk
  289. appendto(%NV%logchat%,SYSOP: %NV%sysline%)
  290. ret
  291.  
  292. *logUsrToDisk
  293.   appendto(%NV%logchat%,USER: %NV%usrline%)
  294. ret
  295. FORW0CTL╡menuask(%NOCR%&CR&&3&Forward message to which user?&12&: &15&*)
  296. seekuser(%RESP%)
  297. say()
  298. IfNotTrue (setequal(a=0))
  299. ifnottrue (return)
  300. say(&CR&&11&Forwarding Message...*)
  301. iftrue (setequal(a=%NDNUMB%))
  302. if (%MSGPVT%)=(PRIVATE) then setequal(k=Yes)
  303. notif (%MSGPVT%)=(PRIVATE) then setequal(k=No)
  304. nicequal(b=%MSGTO%)
  305. zap(%pbtemp%forw.%NODE%)
  306. kill(%pbtemp%forw1.%node%)
  307. capture(%pbtemp%forw1.%NODE%)
  308. loadexec(command.com,/c copy %pbtemp%forw.%NODE%+%pbtemp%forw1.%NODE% %pbtemp%forwrd.%NODE%)
  309. inittxt
  310. import(%pbtemp%forwrd.%NODE%,,1,100)
  311. writemsg(/:LASTMSG/,%RESP%,%MSGFROM%,%MSGDESC%,%var%a,%var%k,0,%MSGNET%,%MSGATTNAME%)
  312. say(Done!)
  313. himsg(/:LASTMSG/)
  314. setequal(f=%ARESP%)
  315. return
  316. WSACTL¿setequal(g=1)
  317. display(display\wsearch)
  318. say(&3&Please file to search for &11&(Wildcards are valid)&12&: &14&(            )&15&*)
  319. setequal(h=0)
  320. back(13)
  321. setequal(y=20)
  322. menuask(%CRON%%LEN%12%*)
  323. if (%RESP%)=(<CR>) then Return
  324. find(%resp%,.)
  325. ifnottrue(combine(%resp%+.*=e))
  326. ifnottrue(setequal(/resp=%var%e))
  327. setequal(n=%RESP%)
  328. log(--,Wildcard Search for: %var%n)
  329. defpause($7$&0&[More?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop, (&11&V&3&)iew, (&11&D&3&)ownload, (&11&T&3&)ag, (&11&H&3&)elp or (&11&C&3&)ontinue?&12&: &7&)
  330. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  331. clearscr
  332. say(&11&(Spacebar) Aborts.  &14&Searching file database for "%var%n". . .&CR&)
  333. spause(3)
  334. goto (enew)
  335. *stsearch
  336. selfarea(%var%g)
  337. eline(79)
  338. enufsec(%FILSEC%)
  339. ifNotTrue (goto (skcheck))
  340. *csearch
  341. say(&7&Searching file area: %FILNAME%|)
  342. if (%CD%)=(No) then wsearch(%FILPATH%files.bbs,12,15,7,11,3,%var%n,1,1)
  343. if (%CD%)=(Yes) then wsearch(%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n,1,1)
  344. ifTrue (goto (enew))
  345. ifkey( )
  346. ifTrue (goto (enew)) ;did user hit stop?
  347. localkey(1)
  348. notif (%ARESP%)=(No) then goto (enew)
  349. *skcheck
  350. if (&g)=(%maxfarea%) then goto (enew)
  351. inc(g)
  352. goto (stsearch)
  353.  
  354. *enew
  355. setequal(g=1)
  356. if (%var%h)=(%maxarea%) then goto (res)
  357. inc(h)
  358. selarea(%var%h)
  359. enufsec(%areasec%)
  360. ifnottrue(goto (enew))
  361. listfile(areas\farea%var%h)
  362. notif (%farea%)=(AREAS\FAREA%var%h) then goto (enew)
  363. goto (stsearch)
  364.  
  365. *res
  366. eline(79)
  367. selarea(/:lastmsg/)
  368. selfarea(/:LASTDOWN/)
  369. setequal(k=0)
  370. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  371. defPif(s:stop,n:nonstop)  ;define our pause prompt...
  372. display(display\sdone)
  373. Return
  374. *view2
  375. setequal(k=%ARESP%)
  376. loadsub(control\macros\zview.ctl)
  377. goto (blist2)
  378. *tag2
  379. setequal(k=%ARESP%)
  380. loadsub(control\macros\tfiles.ctl)
  381. goto (blist2)
  382. *down2
  383. setequal(k=%ARESP%)
  384. loadsub(control\macros\down.ctl)
  385. selfarea(/:Lastdown/)
  386. goto (blist2)
  387. *blist2
  388. spause(0)
  389. clearscr
  390. goto (stsearch)
  391.         *fhlp
  392. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  393. defPif(s:stop,n:nonstop)
  394. setequal(k=%ARESP%)
  395. display(display\help\lst,/:SEC/)
  396. goto (blist2)
  397. NUMBTAGCTL{
  398. setequal(/nvdefpause=%defpause%)
  399. setequal(/nvdefpif=%defpif%)
  400. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  401. defPif(s:stop,n:nonstop)
  402. ;linefeed(1)
  403. setequal(/nvfb=%var%f)
  404. setequal(/nvyb=%var%y)
  405. setequal(y=)
  406.  
  407. *getr
  408. len(%var%y)
  409. if (%aresp%)=(0) then goto (entern)
  410. goto (parseY)
  411.  
  412. *enterN
  413. say(  |)
  414. say(&15&Please enter the numbers of the files to tag&12&: &14&*)
  415. ask(%NOCR%%LEN%50%*)
  416. len(%resp%)
  417. back(%aresp%)
  418. menuequal(y=%resp%)
  419. if (%resp%)=() then goto (retn)
  420.  
  421. *parseY
  422. fcomma(y)
  423. setequal(/resp=%var%y)
  424. find(&y, )
  425. if (%aresp%)=(0) then setequal(y=)
  426. if (%aresp%)=(0) then goto (proce)
  427. addvar(%aresp%+-1=b)
  428. get(%var%y,1,%var%b)
  429. setequal(/resp=%aresp%)
  430. addvar(%var%b+2=b)
  431. get(%var%y,%var%b,100)
  432. setequal(y=%aresp%)
  433. *proce
  434. setequal(c=0)
  435. setequal(e=0)
  436. number(%Resp%)
  437. ifnottrue (goto (PassNumbTag))
  438. cmpvalo(%NUMBTO%,%Resp%)
  439. iftrue(goto (getr))
  440. setequal(b=%RESP%)
  441.  
  442. *outta
  443. setequal(/resp=%tfiles%b%)
  444. *passNumbTag
  445. seek(%pbtemp%tagged.%NODE%)
  446. setequal(v=%aresp%)
  447. if (%resp%)=() then goto (entern)
  448.  
  449. *stseek
  450. adddef(.%DEFEXT%)
  451. setequal(r=%resp%)
  452. seek(passfile.lst)
  453. ifnottrue(goto(nopass))
  454. inpopen(passfile.lst)
  455. setequal(a=%resp%,)
  456. len(%var%a)
  457. setequal(c=%aresp%)
  458. do
  459. inpread
  460. setequal(d=%aresp%)
  461. get(&d,1,%var%c)
  462. if (%aresp%)=(%var%a) then goto (el)
  463. fendif(nopass)
  464. loop
  465. *el
  466. inc(c)
  467. get(&d,%var%c,100)
  468. setequal(a=%aresp%)
  469. Say(&15&Please enter the password for this file&12&: &14&*)
  470. cgetpass(o)
  471. if (%resp%)=(%var%a) then goto (nopass)
  472. inpclose
  473. goto(fname)
  474. *nopass
  475. setequal(/resp=%var%r)
  476. inpclose
  477.  
  478. setequal(p=%RESP%)
  479. menuequal(f=%resp%)
  480. seekfall(%var%p)
  481. If (%ARESP%)=(INVALID) then goto (invfn)
  482. if (%ARESP%)=(No) then goto (nothere)
  483. If (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  484. selfarea(%aresp%)
  485. if (&v)=(Yes) then goto (sometagged)
  486. *doAdd
  487. size(%filpath%%var%p)
  488. ttime(%aresp%)
  489. setequal(v=%ttim%)
  490. if (%free%)=(No) then
  491.    addvar(0%nv%totaltime%+%var%v=q)
  492.    setequal(/nvTotalTime=%var%q)
  493.    endif
  494. cmpval(0%nv%totaltime%,/:left/)
  495. ifnottrue(goto(notenuftime))
  496. AppendTo(%pbtemp%tagged2.%NODE%,%FILPATH%%var%p)
  497. AppendTo(%pbtemp%tagged.%NODE%,%var%p)
  498. AppendTo(%pbtemp%free.%NODE%,%FREE%)
  499. selfarea(/:lastdown/)
  500. zap(%pbtemp%tsize.%node%,%nv%totaltime%)
  501. if (%X%)<(50) then goto (begintag)
  502. say( |)
  503. eline(79)
  504. *beginTag
  505. Say(      &14&%var%f&15& tagged.       *)
  506. len(%var%f)
  507. addvar(%aresp%+21=b)
  508. back(%var%b)
  509. goto(getr)
  510.         *sometagged
  511. seekfile(%pbtemp%tagged.%NODE%,%VAR%F)
  512. ifnottrue (goto (doadd))
  513. say(&CR&&CR&&15&%VAR%F &7&is already tagged.) ;has been found in your tagged files list.)
  514. goto (getr)
  515. ;lview(%pbtemp%tagged.%NODE%,10,7)
  516. ;say(&CR&&15&Do you still want to tag this file? (&12&Y&15&/&12&N&15&)&14&*)
  517. ;back(4)
  518. ;yesnoask()
  519. ;linefeed(1)
  520. ;if (%resp%)=(No) then goto(getr)
  521. ;goto (doAdd)
  522.  
  523.         *invfn
  524. Display(Display\INVALID)
  525. flushout
  526. selfarea(/:LASTDOWN/)
  527. Enter
  528. goto (getr)
  529.  
  530. *notenuftime
  531. addvar(0%nv%totaltime%+-%var%v=q)
  532. setequal(/nvTotalTime=%var%q)
  533. Display(Display\NODLTIME)
  534. goto (getr)
  535.  
  536.         *notenuf
  537. Display (Display\fbadsec)
  538. selfarea(/:LASTDOWN/)
  539. goto (getr)
  540.         *NotHere
  541. selfarea(/:lastdown/)
  542. Display(Display\notfnd)
  543. goto(getr)
  544.  
  545. *ret
  546.  
  547. *retn
  548. say ( |)
  549. eline(79)
  550. say ( |)
  551. setequal(y=%nv%yb%)
  552. setequal(f=%nv%fb%)
  553. setequal(/nvfb=)
  554. setequal(/nvyb=)
  555. defpause(%nv%defpause%)
  556. defpif(%nv%defpif%)
  557. setequal(/nvdefpif=)
  558. setequal(/nvdefpause=)
  559. return
  560. SACTL_setequal(g=1)
  561. display(display\search)
  562. menuask(%cron%&3&Please text to search for&12&: &15&*)
  563. setequal(h=0)
  564. setequal(y=20)
  565. if (%RESP%)=(<CR>) then Return
  566. find(%resp%,.)
  567. ifnottrue(combine(%resp%+.*=e))
  568. ifnottrue(setequal(/resp=%var%e))
  569. setequal(n=%RESP%)
  570. log(--,Wildcard Search for: %var%n)
  571. defpause($7$&0&[More?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop, (&11&V&3&)iew, (&11&D&3&)ownload, (&11&T&3&)ag, (&11&H&3&)elp or (&11&C&3&)ontinue?&12&: &7&)
  572. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  573. clearscr
  574. say(&11&(Spacebar) Aborts.  &14&Searching file database for "%var%n". . .&CR&)
  575. spause(3)
  576. goto (enew)
  577. *stsearch
  578. selfarea(%var%g)
  579. eline(79)
  580. enufsec(%FILSEC%)
  581. ifNotTrue (goto (skcheck))
  582. *csearch
  583. say(&7&Searching file area: %FILNAME%|)
  584. if (%CD%)=(No) then search(%FILPATH%files.bbs,12,15,7,11,3,%var%n,1,1)
  585. if (%CD%)=(Yes) then search(%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n,1,1)
  586. ifTrue (goto (enew))
  587. ifkey( )
  588. ifTrue (goto (enew)) ;did user hit stop?
  589. localkey(1)
  590. notif (%ARESP%)=(No) then goto (enew)
  591. *skcheck
  592. if (&g)=(%maxfarea%) then goto (enew)
  593. inc(g)
  594. goto (stsearch)
  595.  
  596. *enew
  597. setequal(g=1)
  598. if (%var%h)=(%maxarea%) then goto (res)
  599. inc(h)
  600. selarea(%var%h)
  601. enufsec(%areasec%)
  602. ifnottrue(goto (enew))
  603. listfile(areas\farea%var%h)
  604. notif (%farea%)=(AREAS\FAREA%var%h) then goto (enew)
  605. goto (stsearch)
  606.  
  607. *res
  608. eline(79)
  609. selarea(/:lastmsg/)
  610. selfarea(/:LASTDOWN/)
  611. setequal(k=0)
  612. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  613. defPif(s:stop,n:nonstop)  ;define our pause prompt...
  614. display(display\sdone)
  615. Return
  616. *view2
  617. setequal(k=%ARESP%)
  618. loadsub(control\macros\zview.ctl)
  619. goto (blist2)
  620. *tag2
  621. setequal(k=%ARESP%)
  622. loadsub(control\macros\tfiles.ctl)
  623. goto (blist2)
  624. *down2
  625. setequal(k=%ARESP%)
  626. loadsub(control\macros\down.ctl)
  627. selfarea(/:Lastdown/)
  628. goto (blist2)
  629. *blist2
  630. spause(0)
  631. clearscr
  632. goto (stsearch)
  633.         *fhlp
  634. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  635. defPif(s:stop,n:nonstop)
  636. setequal(k=%ARESP%)
  637. display(display\help\lst,/:SEC/)
  638. goto (blist2)
  639. STATSCTLFlog (--,Viewing user statistics)
  640. if (%nv%wipmode%)=(1) then loadmem(control\macros\statswip.ctl)
  641. delimit( ,;)
  642. *stats1
  643. SetEqual(/nva=%VAR%A) ; store contents of A for later restoration
  644. SetEqual(/nvb=%VAR%B) ; store contents of B for later restoration
  645.  
  646. ;---PowerStak Block 1
  647. len(%nv%queue%)
  648. notif (%aresp%) = (0) then 
  649.         setequal(/resp=%nv%queue%)       
  650.         goto(stk) ;If something in the stack then...
  651. endif
  652. ;---PowerStak Block 1 End---
  653.  
  654. *WhichOne
  655. flushout
  656. Say(&CR&&15&(&12&V&15&)iew User Profile or (&12&E&15&)dit Adjustable Settings? &14&*)
  657. MenuKey(%CRON%*)
  658. If(%RESP%)=(<CR>) then Return
  659. BigNiceSay(P:Profile,E:Edit Settings)
  660. BigIf(V:Profile,E:UserInfo)
  661. Goto(InvType)
  662.  
  663. *Profile
  664. LoadSub(control\secinfo.ctl)
  665. Return
  666.  
  667. ClearScr
  668. SetEqual(a=     Your Constant Statistics:)
  669. SetLen(a=79)
  670. Say(&0&$7$%VAR%A$0$)
  671.  
  672. *ContStats1
  673. Say(&CR&&7&   Date of Last Call: &14&/:LAST/         &11&│&7& Your Security Level Is: *)
  674. Say(&14&%SEC%&CR&&7&   First call to BBS: &14&/:FIRST/         &11&│&7&      Times on this *)
  675. Say(BBS: &14&/:TIMESON/&CR&&7&Last New Files Check: &14&/:LASTCHK/         &11&│&7& *)
  676. Say(         Carrier Drops: &14&/:DROPPED/&CR&&7&    Current BBS Time: &14&%DATE% %TIME%   &11&│*)
  677. Say(&7&  Time Allotted Per Day: &14&%LIMIT%&CR&)
  678.  
  679. ;SetEqual(a=     Your Adjustable Settings:)
  680. ;SetLen(a=79)
  681. ;Say(&0&$7$%VAR%A$0$)
  682.  
  683. *InvType
  684. Say(&CR&&CR&&12&Invalid selection. Please try again...)
  685. Goto(WhichOne)
  686.  
  687.  
  688. *Again
  689. Clearscr
  690.  
  691. *UserInfo
  692. ClearScr
  693. Say(&CR&&14&USER INFORMATION &7&─────────────────────────────────────────────────────────────>)
  694. *ContStats2
  695. Say(&12&1.  &11&Street Address: &7&*)
  696. SetEqual(a=/:STREET1/)
  697. SetLen(a=21)
  698. Say(%var%a  &12&2.  &11&Password: &7&*)
  699. SetEqual(a=/:PASS/)
  700. SetLen(a=20)
  701. Say(%VAR%A)
  702.  
  703. say(&12&3.  &11&City and State: &7&*)
  704. SetEqual(a=/:FROM/)
  705. SetLen(a=21)
  706. Say(%var%a  &12&4.  &11&MHS Gateway Name: &7&*)
  707. SetEqual(a=/:MHSNAME/)
  708. SetLen(a=12)
  709. Say(%var%a)
  710.  
  711. SetEqual(a=/:PHONE/)
  712. SetLen(a=18)
  713. Say(&12&5.  &11&Voice Phone Number: &7&%var%a*)
  714. SetEqual(a=/:WORK/)
  715. SetLen(a=12)
  716. say( &12&6.  &11&Work Phone Number: &7&%var%a)
  717.  
  718.  
  719. ;23 spaces in right column
  720. Say(&12&7.  &11&Company Name: &7&*)
  721. SetEqual(a=/:COMPANY/)
  722. If(%HANDLE%)=(Yes) then SetLen(a=24)
  723. Say(%VAR%A *)
  724. NotIf(%HANDLE%)=(Yes) then Goto(NoAlias)
  725. ;NotIf(%HANDLE%)=(Yes) then Say(&8&8.  Alias: *)
  726. If(%HANDLE%)=(Yes) then Say(&12&8.  &11&Alias: &7&*)
  727. If(%HANDLE%)=(Yes) then setequal(a=/:ALIAS/)
  728. NotIf(%HANDLE%)=(Yes) then SetEqual(a=not available)
  729. setlen(a=23)
  730. Say(%var%a  *)
  731. *NoAlias
  732. Say()
  733.  
  734. Say(&CR&&14&SYSTEM SETTINGS &7&──────────────────────────────────────────────────────────────>)
  735. Say(&12&9.  &11&Graphics Mode: &7&*)
  736. SetEqual(a=%GRAPHICS%)
  737. SetLen(a=22)
  738. Say(%var%a  &12&10. &11&ANSI Music: &7&/:ANSMUSIC/)
  739.  
  740. Say(&12&11. &11&Default Protocol: &7&*)
  741. SetEqual(a=/:PROTOCOL/)
  742. If(/:PROTOCOL/)=(N) then SetEqual(a=None)
  743. SetLen(a=19)
  744. Say(%var%a  &12&12. &11&Screen Length: &7&/:SCREENLEN/)
  745.  
  746. SetEqual(a=/:FLAG1/)
  747. SetLen(a=6)
  748. Say(&12&13. &11&Bypass Attached File: &7&%VAR%A*)
  749.  
  750. Get(/:DEFAVAIL/,1,1)
  751. If(%ARESP%)=(Y) then SetEqual(a=Yes)
  752. NotIf(%ARESP%)=(Y) then SetEqual(a=No)
  753. ;SetEqual(a=/:DEFAVAIL/)
  754. SetLen(a=3)
  755. Say(&12&           14. &11&Available For Chat: &7&%VAR%A)
  756. SetEqual(a=/:FLAG2/)
  757. SetLen(a=3)
  758. Say(&12&15. &11&Use Full-Screen Editor by Default: &7&%VAR%A)
  759.  
  760. Say(&CR&&14&OFFLINE MAIL SETTINGS &7&────────────────────────────────────────────────────────>)
  761. SetEqual(a=/:FLAG3/)
  762. SetLen(a=3)
  763. Say(&12&16. &11&Personal Mail Only: &7&%VAR%A*)
  764. SetEqual(a=/:FLAG4/)
  765. SetLen(a=3)
  766. Say(&12&                17. &11&Skip New Files Scan: &7&%VAR%A)
  767.  
  768. Say(&10&&CR&Selections are listed above (1-17).)
  769. cAsk (%cron%&15&Which selection would you like to change (ENTER=Quit)?&12&: &14&*)
  770. ;---PowerStak Block 2
  771.  
  772. *stk
  773. setequal(a=%resp%)
  774. DEQUEUE(a)
  775. setequal(/nvqueue=%var%a)
  776. setequal(/resp=%aresp%)
  777. ;---PowerStak Block 2 End---
  778. Get(%RESP%,1,1)
  779. If(%ARESP%)=(/) then Goto(Anywhere)
  780. If(%ARESP%)=(?) then Goto(OlHelp)
  781. Say(&3&)
  782. MenuEqual(/RESP=%RESP%)
  783. BigIf (<CR>:return,Q:Return,1:street,2:pass,3:city,4:MHS,5:Phone,6:work,7:coname,8:alias,9:graph,10:music,11:prot,12:scrlen,13:attask,14:defavail,15:fulledit,16:qwkpersonal,17:qwknewscan)
  784. goto(bsel)
  785.  
  786.         *Return
  787. SetEqual(a=%NV%A) ; restore A to its original value
  788. SetEqual(b=%NV%B) ; restore B to its original value
  789. SetEqual(/nva=)   ; kill %nv%a% variable
  790. SetEqual(/nvb=)   ; kill %nv%b% variable
  791. return
  792.  
  793.         *Alias
  794. If(%HANDLE%)=(Yes) then loadsub(control\macros\alias.ctl)
  795. NotIf(%HANDLE%)=(Yes) then
  796.   Say(&12&The option you have selected is currently not available)
  797.   SecPause(2)
  798.  endif
  799. Goto (UserInfo)
  800.  
  801.         *fulledit
  802. loadsub(control\macros\editdef.ctl)
  803. Goto (UserInfo)
  804.  
  805.         *QwkPersonal
  806. loadsub(control\macros\qwkpers.ctl)
  807. Goto(UserInfo)
  808.  
  809.         *QwkNewScan
  810. loadsub(control\macros\qwkscan.ctl)
  811. Goto(UserInfo)
  812.  
  813.         *Coname
  814. loadsub(control\macros\coname.ctl)
  815. Goto (UserInfo)
  816.  
  817.         *MHS
  818. loadsub(control\macros\chgmhs.ctl)
  819. Goto (UserInfo)
  820.  
  821.         *Music
  822. loadsub(control\macros\pickmuse.ctl)
  823. Goto (UserInfo)
  824.  
  825.         *prot
  826. loadsub(control\macros\defprot.ctl)
  827. Goto (UserInfo)
  828.  
  829.         *scrlen
  830. loadsub(control\macros\scrlen.ctl)
  831. Goto (UserInfo)
  832.  
  833.         *street
  834. loadsub(control\macros\street.ctl)
  835. Goto (UserInfo)
  836.  
  837.         *city
  838. loadsub(control\macros\city.ctl)
  839. Goto (UserInfo)
  840.  
  841.         *pass
  842. loadsub(control\macros\pass.ctl)
  843. Goto (UserInfo)
  844.  
  845.         *phone
  846. loadsub(control\macros\hphone.ctl)
  847. Goto (UserInfo)
  848.  
  849.         *graph
  850. loadsub(control\macros\graph.ctl)
  851. Goto (UserInfo)
  852.  
  853.         *work
  854. loadsub(control\macros\work.ctl)
  855. Goto (UserInfo)
  856.  
  857.         *attask
  858. loadsub(control\macros\attask.ctl)
  859. Goto (UserInfo)
  860.         *defavail
  861. loadsub(control\macros\avail.ctl)
  862. Goto (UserInfo)
  863.  
  864.  
  865.         *Bsel
  866. LoadSub(control\macros\badsel.ctl)
  867. ;Clear Stack on Error!
  868. ;---PowerStak Block 3
  869. setequal(/nvqueue=)
  870. ;---PowerStak Block 3 End
  871. Goto (UserInfo)
  872.  
  873. *OlHelp
  874. SetNv(AtPrompt=Yes)
  875. SetNv(Helpoption=101)
  876. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  877. Goto(Again)
  878.  
  879. *Anywhere
  880. Len(%RESP%)
  881. If(%ARESP%)<(2) then Goto(Bsel)
  882. LoadSub(control\macros\anywhere.ctl)
  883. Goto(again)
  884. HICTL∙setequal(^51=c:\fd\fdo.bat)
  885. setequal(^50=fdo.bat)
  886. setequal(d=^:50^)
  887.  
  888. *PICKP
  889.  Display (Display\DN-PROTS)
  890.  MenuAsk (%MIN%1%&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  891.  Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  892.  NotIf (%ARESP%)=(0) Then return
  893.  if (%resp%)=(Q) then return
  894.  SetEqual(b=%RESP%)
  895.  Seek(protocol\%var%b-VD.BT)    ;check to see If protocol exists..
  896.  IfNotTrue(Goto (pickp))
  897.  Len(%var%b)
  898.  NotIf (%ARESP%)=(1) then goto (nobat)
  899.  Say(&CR&&3&       Would you like to download this file? &9&[   ]&14&*)
  900.  Back(4)
  901.  YesNoAsk(*)
  902.  If (%RESP%)=(No) Then return
  903.  say(&3&Would you like us to log you off afterwards? &9&[   ]&14&*)
  904. back(4)
  905. yesnoask(*)
  906. SetEqual(m=%RESP%)
  907.  fcopy(^:51^,zvtemp\^:50^)
  908.  Say(&CR&&11&We're sending "^:50^".  Please get ready to receive it now.)
  909.  If (%LOCAL%)=(TRUE) Then return
  910.  FixFile(protocol\%var%b-vd.bt,protocol\%var%b-vd.bat)
  911.  InitClock
  912.  Exec(protocol\%var%b-vd.BAT│)
  913.  Kill(protocol\%var%b-vd.bat)
  914.  If (%LOCAL%)=(FALSE) Then toglocal
  915.  NotIf (%ARESP%)=(0) Then Goto (nsc)
  916.  XferTime
  917.  SetEqual(e=%ARESP%)
  918.  Size(zvtemp\%var%d)
  919.  MultVar(%XMIN%*60=o)
  920.  DivVar(%ARESP%/%var%o=g)         ;calculate CPS rate
  921.  CnvtK(%ARESP%)
  922.  AddVar(%ARESP%+/:KDOWN/=o)
  923.  SetEqual(/KDOWN=%var%o)
  924.  Say(%BEEP%*)
  925.  Log(--,%var%d Downloaded from %var%e.)
  926.  Log(--,Rate: %var%g CPS)
  927.  AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  928.  SetEqual(a=/:DOWNLOADS/)
  929.  inc(a)
  930.  SetEqual(/DOWNLOADS=%var%a)
  931.  If (%LOCAL%)=(TRUE) Then toglocal
  932.  Display (Display\SUCCESS)
  933.  if (&m)=(Yes) then loadsub(control\autooff.ctl)
  934.  Enter
  935.  return
  936.  
  937. *NOBAT
  938.  Say(&CR&&15&No batch protocols allowed for transfering this file.&CR&)
  939.  Goto (pickp)
  940.  
  941. *nsc
  942. toglocal
  943. return
  944. NOSPACECTL=if (%nv%wipmode%)=(1) then goto (wipno)
  945. say(&CR&&14&There is not enough disk space left.  Please try writing your message)
  946. say(at a later time.  Thank you.&CR&)
  947. enter
  948. return
  949.  
  950. *wipno
  951. setequal(c=13~There is not enough disk space left.  Please try writing your message at a later time.~Insufficient Space~1~)
  952. jump (okbox)
  953. return
  954.  
  955. *okbox
  956. Jump (wipc)
  957. comlineinput(30,l)
  958. if (%resp%)=() then goto (okbox)
  959. ret
  960.  
  961. *GCHAR
  962. COMPRINT(%NV%TEXT%)
  963. SETEQUAL(A=0)
  964. DO
  965. COMKEY
  966. ASCII
  967. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  968. INC(A)
  969. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  970. IF(%ARESP%)=(&B) THEN RET
  971. IF(&A)>(45) THEN RET
  972. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  973. DELAY18TH(2)
  974. LOOP
  975. *WIPC
  976. LOCALKEY(1)
  977. IFNOTTRUE(GOTO(NOLKEY))
  978. SYSKEYCHECK
  979. SETEQUAL(/RESP=)
  980. SETEQUAL(/RESP=)
  981. *NOLKEY
  982. CCARRIER
  983. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  984. CHECKSUM(%VAR%C)
  985. SETEQUAL(B=6)
  986. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  987. SETNV(PBACK=)
  988. JUMP(GCHAR)
  989. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  990. SETEQUAL(/IBUFF=%NV%PBACK%)
  991. LEN(%NV%PBACK%)
  992. SETEQUAL(/IBUFF0=%ARESP%)
  993. RET
  994. *NOC0
  995. log(<<,Carrier lost.)
  996. quitbbs
  997. UPCTL«   loadsub(control\exitwip.ctl)
  998.    if (%graphics%)=(RIP) then clearscr
  999.    if (%event%)=(TRUE) then loadmem(control\macros\event.ctl)
  1000.    setequal(s=%Farea%)
  1001.    display (display\UPLD)
  1002.    kill(%pbtemp%ubatch.%NODE%)
  1003.    enter
  1004.    clearmem
  1005.    freespace(%CDRIVE%:)
  1006.    setequal(i=%ARESP%)
  1007.    cmpval(%ARESP%,%MINSPACE%)
  1008.    ifTrue (goto (notenufs))
  1009.    if (%LOCAL%)=(TRUE) then goto (pok)
  1010.    *pickprot
  1011.    display (display\up-PROTS)
  1012.    menuask (&3&Which transfer protocol would you like to use?&11&(or ENTER to Quit)&12&: &15&*)
  1013.    find(%RESP%,\)
  1014.    notif (%ARESP%)=(0) then goto (badprot)
  1015.    if (%resp%)=() then goto (filesback)
  1016.    BigIf(h:phelp,q:filesback)
  1017.    seek(protocol\%RESP%-U.BT)
  1018.    ifTrue (goto (Pok))
  1019. *badprot
  1020. loadsub(control\macros\badsel.ctl)
  1021.    goto (pickprot)
  1022.    *Pok
  1023.    setequal(b=%RESP%)
  1024.    setnv(protocol=%var%b)
  1025.    addcomma(%var%i)
  1026.    say(&CR&&14&%aresp% &7&Bytes Free.)
  1027.    len(%var%b)
  1028.    notif (%LOCAL%)=(TRUE) then notif (%ARESP%)=(1) then loadmem(control\macros\ubatch.ctl)
  1029. *gtname
  1030. say(&CR&&3&Please enter the name of the file to upload&12&: &14&(            )&15&*)
  1031. back(13)
  1032. menuask(%NOCR%%CRON%%LEN%12%*)
  1033.   if (%RESP%)=(<CR>) then say()
  1034.   if (%RESP%)=(<CR>) then goto (ret0)
  1035.   len(%Resp%)
  1036.   back(%Aresp%)
  1037. adddef(.%DEFEXT%)  
  1038.   say(%Resp%&11&&CR&)
  1039.   setequal(d=%RESP%)
  1040.   iseek(%var%d)
  1041.   if (%aresp%)=(Yes) then goto (ishere)
  1042.   if (%Aresp%)=(INVALID) then goto (invfn)
  1043.   say(&14&Please enter a description for your file.  &10&The description can take up 3 lines.&15&)
  1044.   resetwrap
  1045.   say(   (----2----3----4----5----6----7---8----))
  1046.   setequal(r=1)
  1047.   wrapask (%MIN%1%%LEN%40%&3&1&12&: &15&*)
  1048.   setequal(^1=%RESP%)
  1049.   setequal(r=2)
  1050.   wrapask (%CRON%%LEN%40%&3&2&12&: &15&*)
  1051.   if (%RESP%)=(<CR>) then goto (askup)
  1052.   setequal(^2=%RESP%)
  1053.   setequal(r=3)
  1054.   ask (%LEN%39%%CRON%&3&3&12&: &15&*)
  1055.   if (%RESP%)=(<CR>) then goto (askup)
  1056.   setequal(^3=%RESP%)
  1057.  
  1058. *askup
  1059. jump(garea)
  1060.  
  1061.   say(&CR&&15&         Would you like to upload this file? (&12&Y&15&/&12&N&15&)&14&*)
  1062.   back(4)
  1063.   yesnoask(*)
  1064.   if (%RESP%)=(No) then goto (ex)
  1065.   say(&15&Would you like us to log you off afterwards? (&12&Y&15&/&12&N&15&)&14&*)
  1066.   back(4)
  1067.   yesnoask(*)
  1068.   setequal(m=%RESP%)
  1069.   if (%LOCAL%)=(TRUE) then goto (local)
  1070.   setactivity(Uploading a File)
  1071.   say(&CR&&11&We're ready to receive the file.  Please start sending it now.)
  1072.   fixfile(protocol\%var%b-u.bt,%pbtemp%%var%b-u.bat)
  1073.   initclock
  1074.   exec(%pbtemp%%var%b-u.BAT│)
  1075.  
  1076.         *success
  1077. tfreeze(-1)
  1078. eline(20)
  1079. notif (%ARESP%)=(0) then goto (aborted)
  1080. setequal(k=0)
  1081. *lsuccess
  1082. xfertime
  1083. setequal(e=%ARESP%)
  1084.  
  1085. setnv(zc2path=%var%p)
  1086. setnv(zc2file=%var%d)
  1087. loadsub(zc2\zc2.ctl)
  1088. if (&a)=(2) then goto (aborted)
  1089.  
  1090. notif (%LOCAL%)=(TRUE) then toglocal
  1091. setequal(b=%XMIN%)
  1092. if (&b)=(0) then setequal(b=1)
  1093. setequal(o=%xtime%)
  1094. size(%var%p%var%d)
  1095. divvar(%ARESP%/%var%o=g)
  1096.   log(--,%var%d Uploaded. Took %XMIN% minutes.)
  1097.   log(--,  Protocol: '%nv%protocol%'.)
  1098.   log(--,Rate: %var%g CPS)
  1099.   cnvtk(%ARESP%)
  1100.   addvar(%ARESP%+/:KUP/=o)
  1101.   setequal(/KUP=%var%o)
  1102.   say(%BEEP%*)
  1103.   refund        ;refund some of the users time...
  1104.   upped         ;set last upload time...
  1105.   appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.)
  1106.   setequal(a=/:UPLOADS/)
  1107.   inc(a)
  1108.   setequal(/UPLOADS=%var%a)
  1109.   setequal(a=/:dailyul/)
  1110.   inc(a)
  1111.   setequal(/dailyul=%var%a)
  1112.   file2(%var%p,%var%d,10)
  1113.   ;index(/:lastup/,%var%d,%farea%.ndx)
  1114.   ;getdequiv(/:lastup/)
  1115.   ;index(%aresp%,%var%d,areas\farea/:lastmsg/.ndx)
  1116.   notif (%BAUD%)=(LOCAL) then toglocal
  1117.   seek(xcheck.bt)
  1118.   if (%ARESP%)=(Yes) then goto (testup)
  1119.   display (display\USUCCESS)
  1120.   if (&m)=(Yes) then goto (autooff)
  1121. *ex
  1122.   listfile(%var%s)
  1123.   selfarea(/:lastdown/)
  1124.   resetlist
  1125.   tfreeze(0)
  1126.   goto (ret0)
  1127. *aborted
  1128.   kill(%var%p%var%d)
  1129.   log(--,Upload of %var%d aborted.)
  1130.   display (display\ABORTED)
  1131.   goto (ex)
  1132. *ishere
  1133.   display(display\ISHERE)
  1134.   enter
  1135.   goto (gtname)
  1136.  
  1137. *testup
  1138.   fixfile(xcheck.bt,xcheck.bat)
  1139.   exec(xcheck.bat)
  1140.   display (display\USUCCESS)
  1141.   goto (ex)
  1142.  
  1143. *autooff
  1144. loadmem(control\autooff.ctl)
  1145.  
  1146. *local
  1147. say(&CR&&7&Note: To add a large amount of files to your BBS, use the FileEdit program)
  1148. say(to copy files into the desired directories and import descriptions using the)
  1149. say(Alt-I function.)
  1150. say(&CR&&10&You will now specify the path where the file resides.  Ex: C:\DOWNLOADS\)
  1151. menuask(&15&Please enter the path&12&: &14&*)
  1152. setequal(k=10)
  1153. initclock
  1154. Len(%RESP%)
  1155. AddVar(%ARESP%+-1=o)
  1156. Get(%RESP%,%ARESP%,1)
  1157. If(%ARESP%)=(\) then
  1158.   Get(%RESP%,1,%VAR%O)
  1159.   SetEqual(/RESP=%ARESP%)  ; strip trailing backslash, if any
  1160.  endif
  1161. fcopy (%RESP%\%var%d,%var%p%var%d)
  1162. notif (%ARESP%)=(0) then goto (err)
  1163. goto (lsuccess)
  1164. *err
  1165. say(&11&&CR&File not found!&CR&)
  1166. enter
  1167. goto (ex)
  1168.  
  1169. *invfn
  1170. display(display\INVALID)
  1171. flushout
  1172. selfarea(/:LASTDOWN/)
  1173. enter
  1174. tfreeze(0)
  1175. goto (ret0)
  1176.  
  1177. *notenufs
  1178. display (display\NOSPACE)
  1179. selfarea(/:LASTDOWN/)
  1180. enter
  1181. tfreeze(0)
  1182. goto (ret0)
  1183.  
  1184. *phelp
  1185. display(display\help\prot,/:SEC/)
  1186. goto (pickprot)
  1187.  
  1188. *filesback
  1189. tfreeze(0)
  1190. goto (ret0)
  1191.  
  1192. *garea
  1193. setequal(p=files\uploads\)
  1194. LoadSub(control\macros\changeu.ctl)
  1195. SetEqual(p=%FILPATH%)
  1196. ret
  1197.  
  1198. *ret0
  1199. setnv(protocol=)
  1200. if (%nv%wipe%)=() then return
  1201. setnv(wipe=)
  1202. setnv(wipmode=1)
  1203. return
  1204. BOXSCANCTL;BOXSCAN PROCEDURE
  1205.  
  1206. ZAP (LCONF.%NODE%,/:LASTMSG/)
  1207. CLEARMEM
  1208. SETEQUAL (H=0)
  1209. SAY (&CR& &10&Checking your Mail Box:&CR&)
  1210.  
  1211. *STSCAN
  1212.  
  1213. INC (H)
  1214. SELAREA (%VAR%H)
  1215. ENUFSEC (%AREASEC%)
  1216. IFNOTTRUE (GOTO (ELOOP))
  1217. MSGHIGH(%VAR%H)
  1218. SETEQUAL(Z=%ARESP%)
  1219. SETEQUAL(M=MAILBOX\░%SEC%.%VAR%H)
  1220. JUMP (SCAN)
  1221. SETEQUAL(M=MAILBOX\%USERN%.%VAR%H)
  1222. SETEQUAL(Z=0)
  1223. JUMP (SCAN)
  1224. IF (&A)=(10) THEN KILL (MAILBOX\%USERN%.%VAR%H)
  1225. *ELOOP
  1226. NOTIF (%VAR%H)=(%MAXAREA%) THEN GOTO (STSCAN)
  1227. INPLINE (LCONF.%NODE%,1)
  1228. SETEQUAL(/LASTMSG=%ARESP%)
  1229. SELAREA(/:LASTMSG/)
  1230. SETEQUAL(/WAIT=N)
  1231. LOADMEM (CONTROL\BULLETS.CTL)
  1232. *DDSP
  1233. HIMSG(/:LASTMSG/)
  1234. SETEQUAL(F=%ARESP%)
  1235. SAY (^:1^*)
  1236. LOWMSG(/:LASTMSG/)
  1237. SETEQUAL(N=%ARESP%)
  1238. DO
  1239. IF (^:U^)=() THEN RET
  1240. SAY (, ^:U^*)
  1241. INC (U)
  1242. LOOP
  1243.  
  1244. *SCAN
  1245. SEEK (%VAR%M)
  1246. IFNOTTRUE (RET)
  1247. IF (%VAR%Z)=(0) THEN GOTO (DI1)
  1248. INC(Z)
  1249. INPOPEN (%VAR%M)
  1250. ZAP(MSLST.%NODE%)
  1251.  
  1252. DO
  1253. enter
  1254. INPREAD
  1255. SETEQUAL(L=%ARESP%)
  1256. CMPVAL(%VAR%Z,%VAR%L)
  1257. IFTRUE(APPENDTO(MSLST.%NODE%,%VAR%L))
  1258. EOFLOOP
  1259.  
  1260. INPCLOSE
  1261. LINES(MSLST.%NODE%)
  1262. IF (%ARESP%)=(0) THEN RET
  1263. ARRAYREAD (MSLST.%NODE%)
  1264.  
  1265. GOTO (DI2)
  1266.  
  1267. *DI1
  1268. ARRAYREAD (%VAR%M)
  1269. *DI2
  1270. SETEQUAL(/LASTMSG=%VAR%H)
  1271. SETEQUAL(U=2)
  1272. SAY (&2&%AREANAME% Conference: &14&*)
  1273. JUMP (DDSP)
  1274. SETEQUAL(U=1)
  1275. SAY(&CR&&CR&&3& Would you like to read these messages? &9&[   ]&15&*)
  1276. SETEQUAL(/nvMsgReadType=10)
  1277. BACK(4)
  1278. SETEQUAL(/nvCurMsg=^:1^)
  1279. YESNOASK(*)
  1280. SETEQUAL(a=0)
  1281. IF (%RESP%)=(No) THEN RET
  1282. ZAP(HI.%NODE%,%VAR%H)
  1283. LOADSUB (CONTROL\READ.CTL,GOTO(REPEAT))
  1284. INPLINE(HI.%NODE%,1)
  1285. SETEQUAL(H=%ARESP%)
  1286. CLEARMEM
  1287. SETEQUAL(A=10)
  1288. RET
  1289. GRAPHDCTL∩ setequal(/graphics=ANSI)
  1290.  if (%LOCAL%)=(TRUE) then return
  1291.  flushout
  1292.  secpause(1)
  1293.  flushout
  1294.  secpause(1)
  1295.  comsend(!tn)
  1296.  say( |)
  1297.  Say(   )
  1298.  Say(Checking graphics protocol . . . *)
  1299.  setequal(a=)
  1300.  secpause(1)
  1301.  comkey
  1302.  notif(%ARESP%)=() then goto (tkys)
  1303.  secpause(1)
  1304.  comkey
  1305. *tkys
  1306.  if(%ARESP%)=(D) then goto (isWIP)
  1307.  if(%ARESP%)=(C) then goto (isWIP)
  1308.  if(%ARESP%)=(-) then goto(isWIP)
  1309.  if(%ARESP%)=(I) then goto (isrip)
  1310.  if(%ARESP%)=() then setequal(a=aps)
  1311.  if(%ARESP%)=() then goto (isnone)
  1312.  comkey
  1313.  goto (tkys)
  1314.  
  1315. *isansi
  1316.  Say(&12&ANSI &15&Graphics Detected)
  1317.  setequal(/graphics=ANSI)
  1318.  return
  1319. *isWIP
  1320.  flushout
  1321.  say(&12&Windows Interface Protocol Detected)
  1322.  setequal(/graphics=WIP)
  1323.  return
  1324. *isrip
  1325.  flushout
  1326.  Say(&12&RIP&14&scrip &15&Graphics Detected)
  1327.  setequal(/graphics=RIPscrip)
  1328.  return
  1329. *isnone
  1330.  flushout
  1331.  if (%VAR%A)=(aps) then goto (isansi)
  1332.  Say(No Graphics Detected)
  1333.  Say(&7&Use &12&(&14&A&12&)&7&NSI Graphics or ASCI&12&(&14&I&12&)&7& Graphics? &14&*)
  1334.  MenuKeyP
  1335.  If(%RESP%)=(A) then SetEqual(/graphics=ANSI)
  1336.  If(%RESP%)=(R) then SetEqual(/graphics=RIP)
  1337.  If(%RESP%)=(W) then SetEqual(/graphics=WIP)
  1338.  Notif(%RESP%)=(A) then NotIf(%RESP%)=(R) then NotiF(%RESP%)=(W) then Setequal(/graphics=ASCII)
  1339. return
  1340. EDLISTCTL╡loadsub(control\macros\ltagged.ctl)
  1341.  
  1342. say(&15&Please enter the name of the file to remove&12&: &15&(            )&14&*)
  1343. back(13)
  1344. menuask(%NOCR%%CRON%%LEN%12%*)
  1345. if (%RESP%)=(<CR>) then goto (rn)
  1346. adddef (.%DEFEXT%)
  1347.  
  1348. setequal(a=%Resp%)
  1349.  
  1350. jump (DoCopy)
  1351.  
  1352. setequal(b=0)
  1353. setequal(c=0)
  1354.  
  1355. inpopen(t1.%node%)
  1356.  
  1357. do
  1358. inc(c)
  1359. inpread
  1360. if (%ARESP%)=(%VAR%A) then setequal(b=%VAR%C)
  1361. notif (%ARESP%)=(%VAR%A) then appendto(tagged.%node%,%ARESP%)
  1362. eofloop
  1363.  
  1364. inpclose
  1365.  
  1366. if (%VAR%B)=(0) then goto (NoFRet)
  1367.  
  1368. inpopen (t2.%node%)
  1369.  
  1370. setequal(c=0)
  1371.  
  1372. do
  1373. inc(c)
  1374. inpread
  1375. notif (%VAR%C)=(%VAR%B) then appendto (tagged2.%node%,%ARESP%)
  1376. eofloop
  1377. inpclose
  1378.  
  1379. inpopen (f1.%node%)
  1380.  
  1381. setequal(c=0)
  1382.  
  1383. do
  1384. inc(c)
  1385. inpread
  1386. notif (%VAR%C)=(%VAR%B) then appendto (free.%node%,%ARESP%)
  1387. eofloop
  1388. inpclose
  1389.  
  1390. say(&CR&&11&%VAR%A &2&has been removed from the list.&CR&)
  1391. enter
  1392. *rn
  1393. say()
  1394. return
  1395.  
  1396. *NoFRet
  1397. fcopy (t2.%node%,tagged2.%node%)
  1398. fcopy (f1.%node%,free.%node%)
  1399. say (&CR&&12&File not found in tagged file list.&CR&)
  1400. enter
  1401. return
  1402.  
  1403. *DoCopy
  1404. fcopy(tagged.%node%,t1.%node%)
  1405. fcopy(tagged2.%node%,t2.%node%)
  1406. fcopy(free.%node%,f1.%node%)
  1407. zap(tagged.%node%)
  1408. zap(tagged2.%node%)
  1409. zap(free.%node%)
  1410. say()
  1411. ret
  1412. DELTAGCTL÷;deltag.ctl - for editing/deleting the list of tagged files.
  1413. ;
  1414. if (%nv%wipmode%)=(1) then loadmem(control\macros\wipedtag.ctl)
  1415. if (%graphics%)=(RIP) then clearscr
  1416. *start
  1417. seek(%pbtemp%tagged2.%node%)
  1418. ifnottrue(goto (notag))
  1419. loadsub(control\macros\taglist.ctl)
  1420. *Prompt
  1421. say(&11&[Download queue (tag list) management menu])
  1422. menuask(&3&Number to remove, Delete (&11&E&3&)ntire list, (&11&A&3&)dd file, or &11&(ENTER) &3&to quit&12&: &15&*)
  1423. if (%resp%)=(0) then return
  1424. if (%resp%)=() then return
  1425. if (%resp%)=(A) then goto(doAdd)
  1426. If (%RESP%)=(E) Then goto (doKill)
  1427. setequal(d=%resp%)
  1428. inpopen(%pbtemp%tagged.%node%) ;open for input
  1429. zap(%pbtemp%tagged0.%node%)      ;create a new file
  1430. setequal(a=0)
  1431. addvar(%var%d+0=d)
  1432. do
  1433. inc(a)
  1434. inpread ;read a line from the file
  1435. if (%var%a)<>(%var%d) then appendto(%pbtemp%tagged0.%node%,%aresp%)
  1436. eofloop
  1437. inpclose
  1438. fcopy(%pbtemp%tagged0.%node%,%pbtemp%tagged.%node%)
  1439. if (%var%a)=(1) then goto (dokill)
  1440.  
  1441. inpopen(%pbtemp%tagged2.%node%)
  1442. zap(%pbtemp%tagged0.%node%)
  1443. setequal(a=0)
  1444. do
  1445. inc(a)
  1446. inpread
  1447. notif (%var%a)=(%var%d) then appendto(%pbtemp%tagged0.%node%,%aresp%)
  1448. notif (%var%a)=(%var%d) then goto (el)
  1449. size(%aresp%)
  1450. ttime(%aresp%)
  1451. ;addvar(%nv%tsize%+-%ttim%=c)
  1452. ;setequal(/nvtsize=%var%c)
  1453. addvar(%nv%totaltime%+%ttim%=c)
  1454. setequal(/nvTotaltime=%var%c)
  1455. *el
  1456. eofloop
  1457. inpclose
  1458. fcopy(%pbtemp%tagged0.%node%,%pbtemp%tagged2.%node%)
  1459.  
  1460. inpopen(%pbtemp%free.%node%)
  1461. zap(%pbtemp%tagged0.%node%)
  1462. setequal(a=0)
  1463. do
  1464. inc(a)
  1465. inpread
  1466. notif (%var%a)=(%var%d) then appendto(%pbtemp%tagged0.%node%,%aresp%)
  1467. eofloop  ;loop until end of file
  1468. inpclose
  1469. fcopy(%pbtemp%tagged0.%node%,%pbtemp%free.%node%)
  1470. kill(%pbtemp%tagged0.%node%)
  1471. goto (start)
  1472.  
  1473. Return
  1474. *notag
  1475. say(&CR&&12&You don't have any tagged files!&CR&)
  1476. goto(prompt)
  1477.  
  1478. *doKill
  1479. ;setequal(/nvtsize=0)
  1480. setequal(/nvtotaltime=0)
  1481. Kill(%pbtemp%tagged.%NODE%,%pbtemp%tagged2.%NODE%,%pbtemp%free.%NODE%,%pbtemp%tsize.%node%)
  1482. return
  1483.  
  1484. *doAdd
  1485. setnv(indel=1)
  1486. loadsub(control\macros\tfiles.ctl)
  1487. setnv(indel=)
  1488. goto(start)
  1489. SALL2CTLflowmsg(/:lastmsg/)
  1490. getmail(%aresp%,/:lastmsg/,1)
  1491. setequal(/nvMsgReadDir=1)
  1492. zap(sall.tmp,/:lastmsg/)
  1493. zap(cb,0)
  1494. log(--,New Msg Scan (by last read))
  1495. inpline(cb,1)
  1496. say()
  1497.  
  1498. *ttp1
  1499. addvar(%aresp%+1=a)
  1500. setequal(/lastmsg=%var%a)
  1501. zap(cb,%var%a)
  1502. selarea(%var%a)
  1503. himsg(/:LASTMSG/)
  1504. setequal(f=%ARESP%)
  1505.  
  1506. lowmsg(/:lastmsg/)
  1507. setequal(n=%ARESP%)
  1508. setequal(/resp=1)
  1509. ifkey( )
  1510. iftrue(goto (es))
  1511. localkey(2)
  1512. if (%aresp%)=(32) then goto (es)
  1513. enufsec(%areasec%)
  1514. ifnottrue(goto (nextbase))
  1515. say(&11&Searching Area /:lastmsg/: &2&%areaname%|)
  1516. msghigh(/:LASTMSG/)
  1517. SETEQUAL(y=%ARESP%)
  1518. inc(Y)
  1519. cmpval(%VAR%F,%VAR%Y)
  1520. iftrue (goto (nextbase))
  1521. cmpval(%VAR%N,%VAR%Y)
  1522. ifnottrue(SETEQUAL(Y=%VAR%N))
  1523. setequal(/nvCurMsg=%var%y)
  1524. setequal(/nvMsgReadDir=1)
  1525. setequal(s=0)
  1526. loadsub(control\READ.CTL,goto (repeat))
  1527. if (%RESP%)=(Q) then Jump (qt)
  1528.  
  1529. *nextbase
  1530. eline(50)
  1531. inpline(cb,1)
  1532. if (%aresp%)=(%maxarea%) then goto (es)
  1533. goto (ttp1)
  1534.  
  1535. *es
  1536.  
  1537. inpline(sall.tmp,1)
  1538. setequal(/lastmsg=%aresp%)
  1539. selarea(%aresp%)
  1540. return
  1541.  
  1542. *qt
  1543. say(&3&Quit Scan?&12&: &9&[   ]&15&*)
  1544. back(4)
  1545. yesnoask(*)
  1546. say()
  1547. if (%RESP%)=(Yes) then return
  1548. ret
  1549. NVS   +setnv(curactive=)
  1550. setnv(logchat=)
  1551. setnv(syscb=0)
  1552. setnv(usrcb=0)
  1553. setnv(SpLine=%aresp%)
  1554. setnv(sysx=%x%)
  1555. setnv(sysy=%y%)
  1556. setnv(usrx=1)
  1557. setnv(usry=13)
  1558. setnv(sysline=)
  1559. setnv(usrline=)
  1560. setnv(curx=%x%)
  1561. setnv(cury=%y%)
  1562.   setnv(curactive=u)
  1563. if (%y%)>(11) then setnv(Syscb=1)
  1564.   setnv(Usrcb=1)
  1565. MWHOCTLif (%nv%wipmode%)=(1) then loadmem(control\macros\mwhowip.ctl)
  1566. if (%MULTI%)=(TRUE) then goto (start)
  1567. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  1568. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  1569. say(your Sysop, %SYSOP%.)
  1570. goto (ewho)
  1571. *start
  1572. Seek(%CPAT%whoison.dat)
  1573. If (%ARESP%)=(No) Then return
  1574. if (%Graphics%)=(RIP) then clearscr
  1575. linefeed(1)
  1576. setequal(w=0)
  1577. size(%CPAT%whoison.dat)
  1578. display(display\who)
  1579. divvar(%ARESP%/131=y)
  1580. do
  1581. inc(w)
  1582. nodestat(%var%w)
  1583. setequal(t=%var%w)
  1584. setlen(t=4)
  1585. say(&0&&11&%var%t&15& %NAVAIL%&7&  %NNAME% %NFROM% %NBAUD%%hRed%%NACTIVITY%)
  1586. If (&w)=(&y) then goto (ewho)
  1587. loop
  1588.  
  1589.         *ewho
  1590. linefeed(1)
  1591. log(--,Viewed other node users (WHO))
  1592. Enter
  1593. Return
  1594. VIEWNODECTL±loadsub(control\exitwip.ctl)
  1595. if (%MULTI%)=(TRUE) then goto (start)
  1596. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  1597. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  1598. say(your Sysop, %SYSOP%.&CR&)
  1599. enter
  1600. goto (doret)
  1601. *start
  1602. loadsub(control\macros\mwho.ctl)
  1603. menuask(%CRON%&CR&&3&Enter number of the &11&node &3&to view (ENTER=Quit)&12&: &15&*)
  1604. if (%resp%)=(<CR>) then goto (doret)
  1605. getscreen(%resp%)
  1606. say(&CR&&14&Please wait while screen is being retrieved... this process may take a)
  1607. say(while.  Please wait at the following prompt until the screen arrives.&CR&)
  1608. enter
  1609. *doret
  1610. if (%nv%wipe%)=() then return
  1611. setnv(wipe=)
  1612. setnv(wipmode=1)
  1613. return
  1614. WFINDCTL0goto (show)
  1615. setequal(d=*.E*)
  1616. setequal(%MAXFAREA%+1=e)
  1617. setequal(c=0)
  1618. setequal(f=0)
  1619.  
  1620. *tt
  1621. inc(c)
  1622. if (&E)=(&C) then goto (te)
  1623. selfarea(%VAR%C)
  1624.  
  1625. say(%FILPATH%             |)
  1626. zap(tmp00.%NODE%)
  1627. inpclose
  1628. loadexec(command.com,/c if exist %FILPATH%%VAR%D dir/b %FILPATH%%VAR%D >tmp00.%NODE%,)
  1629. return
  1630. inpopen(tmp00.%NODE%)
  1631. do
  1632. fendif(tt)
  1633. inpread
  1634. inc(f)
  1635. setequal(^%VAR%F=%ARESP%)
  1636. loop
  1637.  
  1638. goto (tt)
  1639.  
  1640. *te
  1641. say(write to file done...)
  1642. selfarea(/:lastdown/)
  1643. enter
  1644. *show
  1645. setequal(d=0)
  1646. do
  1647. if (&D)=(&F) then return
  1648. inc(D)
  1649. say(^:D^)
  1650. loop
  1651.  
  1652. return
  1653. SAVEVARSCTLxsetequal(/nva0=%var%a)
  1654. setequal(/nvb0=%var%b)
  1655. setequal(/nvc0=%var%c)
  1656. setequal(/nvd0=%var%d)
  1657. setequal(/nve0=%var%e)
  1658. setequal(/nvf0=%var%f)
  1659. setequal(/nvg0=%var%g)
  1660. setequal(/nvh0=%var%h)
  1661. setequal(/nvi0=%var%i)
  1662. setequal(/nvj0=%var%j)
  1663. setequal(/nvk0=%var%k)
  1664. setequal(/nvl0=%var%l)
  1665. setequal(/nvm0=%var%m)
  1666. setequal(/nvn0=%var%n)
  1667. setequal(/nvo0=%var%o)
  1668. setequal(/nvp0=%var%p)
  1669. setequal(/nvq0=%var%q)
  1670. setequal(/nvr0=%var%r)
  1671. setequal(/nvs0=%var%s)
  1672. setequal(/nvt0=%var%t)
  1673. setequal(/nvu0=%var%u)
  1674. setequal(/nvv0=%var%v)
  1675. setequal(/nvw0=%var%w)
  1676. setequal(/nvx0=%var%x)
  1677. setequal(/nvy0=%var%y)
  1678. setequal(/nvz0=%var%z)
  1679. return
  1680. WIPEDTAGCTLi*thetop
  1681.  
  1682. setnv(high=21)
  1683. setnv(NoInfo=1)
  1684. loadsub(control\ewipscr.ctl,setnv(wipf=edittag))
  1685.  
  1686. *initBox
  1687. setequal(c=14~listbox~1000~%nv%high%~)
  1688. jump (wipc)
  1689.  
  1690. goto (listfa)
  1691.  
  1692. *GetResp0
  1693. setequal(c=0A~)
  1694. jump (wipc)
  1695.  
  1696. jump (getInput)
  1697. writeln(Response from user: "%resp%")
  1698. if (%nv%wiprestreq%)=(1) then goto (thetop)
  1699. if (%resp%)=(E) then goto (dokill)
  1700. if (%resp%)=(A) then goto (doadd)
  1701. if (%resp%)=(Exit) then goto (ret4)
  1702. if (%resp%)=(quit) then goto (ret4)
  1703. setequal(b=%resp%)
  1704. find(&b,,)
  1705. if (%aresp%)<=(1) then goto (NotListC)
  1706. addvar(%aresp%+-1=e)
  1707. addvar(%aresp%+1=f)
  1708. get(&b,1,%var%e)
  1709. setnv(wipc=%aresp%)
  1710. get(&b,%var%f,1000)
  1711. setequal(b=%aresp%)
  1712. if (%var%b)=(-1) then goto (more)
  1713. setequal(/resp=%var%b)
  1714. goto (sa)
  1715. *NotListC
  1716. find(&b,;)
  1717. if (%aresp%)<=(1) then goto (NoCmnd)
  1718. addvar(%aresp%+-1=e)
  1719. addvar(%aresp%+1=f)
  1720. get(&b,1,%var%e)
  1721. SetNv(WipC=%aresp%)
  1722. setnv(cText=)
  1723. len(%var%b)
  1724. if (%var%f)<=(%aresp%) then
  1725. get(&b,%var%f,1000)
  1726. SetNv(Ctext=%aresp%)
  1727. endif
  1728. ;if (%nv%wipc%)=(searchtext) then setNv(key=%nv%Ctext%)
  1729. *NoCmnd
  1730. setnv(wtxt=)
  1731. goto (getResp0)
  1732.  
  1733.  
  1734. *listfa
  1735. seek(%pbtemp%tagged.%node%)
  1736. ifnottrue(goto(donef))
  1737.  
  1738. inpopen(%pbtemp%tagged.%node%,4)
  1739.  
  1740. setnv(d=0)
  1741. setnv(m=0)
  1742. setnv(e=0)
  1743. setnv(f=0)
  1744.  
  1745. *more
  1746. setequal(u=0)
  1747. setequal(d=%nv%d%)
  1748. setequal(m=%nv%m%)
  1749. setequal(e=%nv%e%)
  1750. setequal(f=%nv%f%)
  1751. fendif(donef)
  1752.  
  1753. *stLoop
  1754.   inc(u)
  1755.   inc(d)
  1756.   inpread
  1757.   writeln(%aresp%)
  1758.   setequal(w=%aresp%)
  1759.   setequal(c=07~listbox~)
  1760.   cmpval(9,%var%d)
  1761.   ifnottrue(setequal(c=%var%c0))
  1762.   setequal(c=%var%c%var%d: %var%w)
  1763.   len(%var%w)
  1764.   addvar(12+-%aresp%=a)
  1765.   get(            ,1,%var%a)
  1766.   setequal(c=%var%c%aresp%)
  1767.   inpline(%pbtemp%tagged2.%node%,%var%d)
  1768.   setequal(w=%aresp%)
  1769.   size(%var%w)
  1770.   addvar(%var%e+%aresp%=e)
  1771.   setnv(siz=%aresp%)
  1772.   setequal(c=%var%c   %aresp%)
  1773.   len(%aresp%)
  1774.   addvar(7+-%aresp%=a)
  1775.   get(         ,1,%var%a)
  1776.   setequal(c=%var%c%aresp% )
  1777.   ttime(%nv%siz%)
  1778.   setequal(c=%var%c%aresp%)
  1779.   setequal(c=%var%c~)
  1780.   setnv(d=%var%d)
  1781.   setnv(f=%var%f)
  1782.   writeln(%var%c)
  1783.   jump (wipc)
  1784.   setequal(d=%nv%f%)
  1785.   setequal(d=%nv%d%)
  1786.   inpLine(%pbtemp%free.%node%,%var%d)
  1787.   addvar(%var%f+%ttim%=f)
  1788.   ifnottrue(addvar(%var%m+%ttim%=m))
  1789.   if (%var%u)>(%nv%high%) then goto (donef)
  1790. fendif(done)
  1791. goto(stloop)
  1792.  
  1793. *done
  1794. inpclose
  1795.  
  1796. cnvtk(%var%e)
  1797. setequal(c=07~listbox~    TOTAL      %aresp% kbytes  %var%f minutes~)
  1798. jump (wipc)
  1799. goto (donef)
  1800.  
  1801. *none
  1802. setequal(c=07~listbox~   No files currently tagged.~)
  1803. jump (wipc)
  1804. goto (donef)
  1805.  
  1806.  
  1807.  
  1808. *listfa
  1809. inpclose
  1810. inpopen(%farea%.bbs,4)
  1811. setequal(d=0)
  1812. setnv(d=0)
  1813.  
  1814. *more
  1815. setequal(d=%nv%d%)
  1816. setequal(u=0)
  1817.  
  1818. *rt
  1819. inc(d)
  1820. ;fendif(nomore)
  1821. inpread
  1822. setequal(n=%aresp%)
  1823. fendif(nomore)
  1824. inpread
  1825. setequal(a=%aresp%)
  1826. find(&a,,)
  1827. if (%aresp%)=(0) then goto (rt)
  1828. addvar(%aresp%+-1=w)
  1829. get(&a,1,%var%w)
  1830. if (%aresp%)>(%sec%) then goto (rt)
  1831. setequal(e=%var%d)
  1832. setlen(e=5)
  1833. inc(u)
  1834. setequal(c=07~listbox~%var%e %var%n~)
  1835. writeln(%var%e %var%n)
  1836. if (%nv%high%)<>() then goto (nh)
  1837. if (%var%u)=(%resp%) then goto (ga0)
  1838. *nh
  1839. setnv(d=%var%d)
  1840. if (%nv%high%)<>() then jump (wipc)
  1841. setequal(d=%nv%d%)
  1842. if (%nv%high%)=() then goto (rt)
  1843. if (%var%u)>(%nv%high%) then goto (donef)
  1844. goto (rt)
  1845.  
  1846. *NoMore
  1847.  if (%nv%high%)=() then goto (ga0)
  1848. ; writeln(No more matches to the text you specified could be found.)
  1849. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  1850. ; jump (okbox0)
  1851.  goto (donef)
  1852. ; goto (getresp0)
  1853.  
  1854. *GCHAR
  1855. COMPRINT(%NV%TEXT%)
  1856. SETEQUAL(A=0)
  1857. DO
  1858. COMKEY
  1859. ASCII
  1860. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  1861. INC(A)
  1862. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  1863. IF(%ARESP%)=(&B) THEN RET
  1864. IF(&A)>(200) THEN RET
  1865. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  1866. DELAY18TH(2)
  1867. LOOP
  1868. *WIPC
  1869. LOCALKEY(1)
  1870. IFNOTTRUE(GOTO(NOLKEY))
  1871. SYSKEYCHECK
  1872. SETEQUAL(/RESP=)
  1873. SETEQUAL(/RESP=)
  1874. *NOLKEY
  1875. CCARRIER
  1876. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  1877. CHECKSUM(%VAR%C)
  1878. SETEQUAL(B=6)
  1879. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  1880. SETNV(PBACK=)
  1881. JUMP(GCHAR)
  1882. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  1883. setequal(c=%aresp%)
  1884. SETEQUAL(/IBUFF=%NV%PBACK%)
  1885. LEN(%NV%PBACK%)
  1886. SETEQUAL(/IBUFF0=%ARESP%)
  1887. SETEQUAL(/ARESP=%VAR%C)
  1888. RET
  1889. *NOC0
  1890. log(<<,Carrier lost.)
  1891. quitbbs
  1892.  
  1893. *wipask
  1894. loadsub(control\wipask.ctl)
  1895. ret
  1896.  
  1897. *getinput
  1898. writeln(Waiting for input from remote user.)
  1899. setequal(y=180)
  1900. jump (wipask)
  1901. if (%aresp%)<>(24) then ret
  1902. loadsub(control\wipask.ctl,goto(twarn))
  1903. setequal(y=60)
  1904. jump (wipask)
  1905. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  1906. ret
  1907.  
  1908. *donef
  1909. ;inc(d)
  1910. setnv(d=%var%d)
  1911. setnv(m=%var%m)
  1912. setnv(e=%var%e)
  1913. setnv(f=%var%f)
  1914. write(Updating list box on user's screen ... )
  1915. setequal(c=07~listbox~-1~)
  1916. jump (wipc)
  1917. setequal(c=0F~listbox~Change File Area~1~1~2~)
  1918. jump (wipc)
  1919. setequal(c=0F~RecCount~20~1~0~1~)
  1920. jump (wipc)
  1921. setequal(c=0F~Exit~Exit~1~1~3~)
  1922. jump (wipc)
  1923. setequal(c=0F~Scrl_UP~~1~1~4~)
  1924. jump (wipc)
  1925. setequal(c=0F~Scrl_Dn~~1~1~5~)
  1926. jump (wipc)
  1927. setequal(c=0F~Page_Up~~1~1~6~)
  1928. jump (wipc)
  1929. setequal(c=0F~Page_Dn~~1~1~7~)
  1930. jump (wipc)
  1931. setequal(c=0A~)
  1932. jump (wipc)
  1933. writeln(Done!)
  1934. goto(getresp0)
  1935.  
  1936. *okbox0
  1937. Jump (wipc)
  1938. comlineinput(180,l)
  1939. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  1940. if (%resp%)=() then goto (okbox)
  1941. ret
  1942.  
  1943. *notext
  1944. writeln(No text was specified.  Enter some text to search for and try again...)
  1945. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  1946. jump (okbox0)
  1947. goto (getresp0)
  1948.  
  1949.  
  1950. *sa
  1951.  
  1952. setequal(d=%resp%)
  1953. inpopen(%pbtemp%tagged.%node%) ;open for input
  1954. zap(%pbtemp%tagged0.%node%)      ;create a new file
  1955. setequal(a=0)
  1956. addvar(%var%d+0=d)
  1957. do
  1958. inc(a)
  1959. inpread ;read a line from the file
  1960. if (%var%a)<>(%var%d) then appendto(%pbtemp%tagged0.%node%,%aresp%)
  1961. eofloop
  1962. inpclose
  1963. fcopy(%pbtemp%tagged0.%node%,%pbtemp%tagged.%node%)
  1964. if (%var%a)=(1) then goto (dokill)
  1965.  
  1966. inpopen(%pbtemp%tagged2.%node%)
  1967. zap(%pbtemp%tagged0.%node%)
  1968. setequal(a=0)
  1969. do
  1970. inc(a)
  1971. inpread
  1972. notif (%var%a)=(%var%d) then appendto(%pbtemp%tagged0.%node%,%aresp%)
  1973. notif (%var%a)=(%var%d) then goto (el)
  1974. size(%aresp%)
  1975. ttime(%aresp%)
  1976. ;addvar(%nv%tsize%+-%ttim%=c)
  1977. ;setequal(/nvtsize=%var%c)
  1978. addvar(%nv%totaltime%+%ttim%=c)
  1979. setequal(/nvTotaltime=%var%c)
  1980. *el
  1981. eofloop
  1982. inpclose
  1983. fcopy(%pbtemp%tagged0.%node%,%pbtemp%tagged2.%node%)
  1984.  
  1985. inpopen(%pbtemp%free.%node%)
  1986. zap(%pbtemp%tagged0.%node%)
  1987. setequal(a=0)
  1988. do
  1989. inc(a)
  1990. inpread
  1991. notif (%var%a)=(%var%d) then appendto(%pbtemp%tagged0.%node%,%aresp%)
  1992. eofloop  ;loop until end of file
  1993. inpclose
  1994. fcopy(%pbtemp%tagged0.%node%,%pbtemp%free.%node%)
  1995. kill(%pbtemp%tagged0.%node%)
  1996. goto (initbox)
  1997.  
  1998. Return
  1999. *notag
  2000. writeln(You don't have any tagged files!)
  2001. setequal(c=13~You don't have any tagged files!~No tagged files.~1~)
  2002. jump (okbox0)
  2003. goto (getresp0)
  2004.  
  2005. *doKill
  2006. ;setequal(/nvtsize=0)
  2007. setequal(/nvtotaltime=0)
  2008. Kill(%pbtemp%tagged2.%NODE%,%pbtemp%tagged.%NODE%,%pbtemp%free.%NODE%,%pbtemp%tsize.%node%)
  2009. writeln(Tagged File List Deleted.)
  2010. setequal(c=13~Tagged File List Deleted.~List Deleted~1~)
  2011. jump (okbox0)
  2012. goto (initbox)
  2013.  
  2014. *doAdd
  2015. loadsub(control\macros\tag-wip.ctl)
  2016. goto(thetop)
  2017.  
  2018. *okbox0
  2019. Jump (wipc)
  2020. *tryr0
  2021. comlineinput(180,l)
  2022. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  2023. if (%resp%)=() then goto (tryr0)
  2024. ret
  2025.  
  2026. *ret4
  2027. setnv(d=)
  2028. inpclose
  2029. return
  2030.  
  2031. EDITCTLτsetequal(a=%NAME%)
  2032. upcase(a)
  2033. setequal(i=%MSGFROM%)
  2034. upcase(i)
  2035. If(%SEC%)=(100) then Goto(StartIt)
  2036. notif (&i)=(&a) then goto (inv2)
  2037. *StartIt
  2038. setequal(p=%MAXLINE%)
  2039. setequal(q=%var%y)
  2040. msgkill(/:LASTMSG/,%var%y)
  2041. setequal(a=%MSGTO%)
  2042. SetEqual(/nvaddressee=%MSGTO%)
  2043. SetEqual(/nvaddresser=%NAME%)
  2044. SetEqual(/nvccs=0)
  2045. SetEqual(/nvcc1=)
  2046. setequal(k=20)
  2047. seekuser(%var%a)
  2048. setequal(c=%NDNUMB%)
  2049. SetEqual(/nvtousernum=%NDNUMB%)
  2050. setequal(y=0)
  2051. IfNotTrue (setequal(c=0))
  2052. setequal(b=%MSGDESC%)
  2053. SetEqual(/nvsubject=%MSGDESC%)
  2054. ;setequal(z=10)
  2055. SetEqual(z=0)
  2056. ;At STENTER in ENTER.CTL, z is # of cc's.
  2057. loadmem(control\macros\ENTER.CTL,goto (stenter))
  2058.  
  2059. *inv2
  2060. say(&CR&&12&Invalid selection! Please try again...)
  2061. secpause(1)
  2062. flushout
  2063. return
  2064. EDDCTL╠ask(file:)
  2065. Seekfall(%RESP%)
  2066. say(%aresp%)
  2067. setequal(a=%resp%)
  2068. If (%ARESP%)=(INVALID) Then goto (nope)
  2069. If (%ARESP%)=(No) Then Goto (ope)
  2070. If (%ARESP%)=(NOT ENOUGH) Then Goto (nope)
  2071. selfarea(%ARESP%)
  2072.  
  2073. ask()
  2074. setequal(^1=%resp%)
  2075. ask()
  2076. setequal(^2=%resp%)
  2077. ask()
  2078. setequal(^3=%resp%)
  2079.  
  2080. if (%CD%)=(No) then eddesc(%FILPATH%files.bbs,%var%a,3)
  2081. if (%CD%)=(Yes) then eddesc (%CDPath%%filarea%\files.bbs,%var%a,3)
  2082.  
  2083. selfarea(/:lastdown/)
  2084. return
  2085.  
  2086. *nope
  2087.  
  2088. MCOPYCTL loadsub(control\exitwip.ctl)
  2089. *CopyPrompt
  2090. cAsk(%CRON%&CR&&15&Enter message number to copy (ENTER=Quit)&12&: &14&*)
  2091. If(%RESP%)=(<CR>) then goto (doret)
  2092. Get(%RESP%,1,1)
  2093. If(%ARESP%)=(/) then Goto(Anywhere)
  2094. If(%ARESP%)=(?) then Goto(Olhelp)
  2095. MenuEqual(/RESP=%RESP%)
  2096. inittxt
  2097. GetMail(%RESP%,/:LASTMSG/,1)
  2098. cMenuAsk(%CRON%&CR&&15&Copy to which area?&12&: &14&*)
  2099. If(%RESP%)=(<CR>) then goto (doret)
  2100. If (%MSGPVT%)=(PRIVATE) Then SetEqual(k=Yes)
  2101. If (%MSGPVT%)<>(PRIVATE) Then SetEqual(k=No)
  2102. setequal(a=%msgfrom%)
  2103. fcomma(a)
  2104. setequal(b=%msgto%)
  2105. fcomma(b)
  2106. setequal(c=%msgdesc%)
  2107. fcomma(c)
  2108. selarea(%resp%)
  2109. WriteMsg(%RESP%,%var%b,%var%a,%var%c,00,%var%k,0,%MSGNET%,%MSGATTNAME%)
  2110. selarea(/:lastmsg/)
  2111. goto (doret)
  2112.  
  2113. *OlHelp
  2114. SetNv(AtPrompt=Yes)
  2115. SetNv(Helpoption=81)
  2116. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  2117. Goto(CopyPrompt)
  2118.  
  2119. *Anywhere
  2120. Len(%RESP%)
  2121. If(%ARESP%)<(2) then Goto(Bsel)
  2122. LoadSub(control\macros\anywhere.ctl)
  2123. Goto(CopyPrompt)
  2124.  
  2125. *doret
  2126. if (%nv%wipe%)=() then return
  2127. setnv(wipe=)
  2128. setnv(wipmode=1)
  2129. return
  2130. BUMPCTL%*BumpOthers
  2131. setnv(highc=0)
  2132. SetNv(Starta=%VAR%A)
  2133. SetNv(Startb=%VAR%B)
  2134. *Looper
  2135. Inc(b)
  2136. Seek(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  2137. IfNotTrue(Goto(BumpIt))
  2138. Goto(Looper)
  2139. *BumpIt
  2140. SetEqual(c=%VAR%B) ; c will be destination and b will be source extension
  2141. AddVar(%VAR%B+-1=b)
  2142. Rename(%nv%newstemp%hdr%VAR%A.%VAR%B,%nv%newstemp%hdr%VAR%A.%VAR%C)
  2143. Rename(%nv%newstemp%news%VAR%A.%VAR%B,%nv%newstemp%news%VAR%A.%VAR%C)
  2144. if (%var%c)>(%nv%highc%) then setnv(highc=%var%c)
  2145. If(&b)>(0) then Goto(BumpIt)
  2146. seek(%nv%newstemp%news%var%a.0)
  2147. if (%aresp%)=(No) then
  2148.    zap(%nv%newstemp%News%var%a.0)
  2149.    zap(%nv%newstemp%hdr%var%a.0)
  2150.    endif
  2151. SetEqual(a=%NV%STARTA%)
  2152. ;SetEqual(b=%NV%STARTB%)
  2153. SetEqual(b=%nv%highc%)
  2154. SetEqual(/nva=%VAR%A)
  2155. SetEqual(/nvb=%VAR%B)
  2156. setnv(highc=)
  2157. SetNv(starta=)
  2158. SetNv(startb=)
  2159. Return
  2160. LISTCTL0Clearscr
  2161. Say(&7&Users currently registered on&15& %BBS%&CR&)
  2162. Say(&14&Name                                    Calling From)
  2163. Say(&10&-----------------------------------------------------------------)
  2164. sPause(5)
  2165. ListUsers(40,15,3)
  2166. linefeed(1)
  2167. log(--,Listed BBS users)
  2168. Enter
  2169. Return ;go back to menu
  2170. RESTVARSCTL■setequal(a=%nv%a0%)
  2171. setequal(b=%nv%b0%)
  2172. setequal(c=%nv%c0%)
  2173. setequal(d=%nv%d0%)
  2174. setequal(e=%nv%e0%)
  2175. setequal(f=%nv%f0%)
  2176. setequal(g=%nv%g0%)
  2177. setequal(h=%nv%h0%)
  2178. setequal(i=%nv%i0%)
  2179. setequal(j=%nv%j0%)
  2180. setequal(k=%nv%k0%)
  2181. setequal(l=%nv%l0%)
  2182. setequal(m=%nv%m0%)
  2183. setequal(n=%nv%n0%)
  2184. setequal(o=%nv%o0%)
  2185. setequal(p=%nv%p0%)
  2186. setequal(q=%nv%q0%)
  2187. setequal(r=%nv%r0%)
  2188. setequal(s=%nv%s0%)
  2189. setequal(t=%nv%t0%)
  2190. setequal(u=%nv%u0%)
  2191. setequal(v=%nv%v0%)
  2192. setequal(w=%nv%w0%)
  2193. setequal(x=%nv%x0%)
  2194. setequal(y=%nv%y0%)
  2195. setequal(z=%nv%z0%)
  2196. setequal(/nva0=)
  2197. setequal(/nvb0=)
  2198. setequal(/nvc0=)
  2199. setequal(/nvd0=)
  2200. setequal(/nve0=)
  2201. setequal(/nvf0=)
  2202. setequal(/nvg0=)
  2203. setequal(/nvh0=)
  2204. setequal(/nvi0=)
  2205. setequal(/nvj0=)
  2206. setequal(/nvk0=)
  2207. setequal(/nvl0=)
  2208. setequal(/nvm0=)
  2209. setequal(/nvn0=)
  2210. setequal(/nvo0=)
  2211. setequal(/nvp0=)
  2212. setequal(/nvq0=)
  2213. setequal(/nvr0=)
  2214. setequal(/nvs0=)
  2215. setequal(/nvt0=)
  2216. setequal(/nvu0=)
  2217. setequal(/nvv0=)
  2218. setequal(/nvw0=)
  2219. setequal(/nvx0=)
  2220. setequal(/nvy0=)
  2221. setequal(/nvz0=)
  2222. return
  2223. TFILESCTLaif (%nv%wipmode%)=(1) then loadmem(control\macros\tag-wip.ctl)
  2224. *checkback
  2225. linefeed(1)
  2226. *fname
  2227. say(&3&Enter the name of the file to tag or &11&(ENTER)&3& to quit&12&: &14&(            )&15&*)
  2228. back(13)
  2229. menuask(%NOCR%%CRON%%LEN%12%*)
  2230. Get(%RESP%,1,1)
  2231. If(%ARESP%)=(?) then Goto(OlHelp)
  2232. if (%RESP%)=(<CR>) then goto (ret)
  2233. setequal(s=%resp%)
  2234. adddef(.%DEFEXT%)
  2235.  
  2236. setequal(r=%resp%)
  2237. seek(passfile.lst)
  2238. ifnottrue(goto(nopass))
  2239. inpopen(passfile.lst)
  2240. setequal(a=%resp%,)
  2241. len(%var%a)
  2242. setequal(c=%aresp%)
  2243. do
  2244. inpread
  2245. setequal(d=%aresp%)
  2246. get(&d,1,%var%c)
  2247. if (%aresp%)=(%var%a) then goto (el)
  2248. fendif(nopass)
  2249. loop
  2250. *el
  2251. inc(c)
  2252. get(&d,%var%c,100)
  2253. setequal(a=%aresp%)
  2254. Say(&CR&&3&Please enter the password for this file&12&: &15&*)
  2255. cgetpass(o)
  2256. if (%resp%)=(%var%a) then goto (nopass)
  2257. inpclose
  2258. goto(fname)
  2259. *nopass
  2260. setequal(/resp=%var%r)
  2261. inpclose
  2262.  
  2263. FIND(%RESP%,?)
  2264. NOTIF (%ARESP%)=(0) THEN GOTO (W)
  2265. FIND(%RESP%,*)
  2266. NOTIF (%ARESP%)=(0) THEN GOTO (W)
  2267. seek(%pbtemp%tagged.%NODE%)
  2268. setequal(v=%aresp%)
  2269. *stseek
  2270. setequal(p=%RESP%)
  2271. len(%var%s)
  2272. back(%ARESP%)
  2273. setequal(m=%resp%)
  2274. upcase(m)
  2275. say(%VAR%M)
  2276. setequal(z=/:downloads/)
  2277. lines(%pbtemp%tagged.%node%)
  2278. addvar(/:dailydl/+%aresp%=y)
  2279. if (%var%y)=(%dailyL%) then goto (badratio)
  2280. addvar(%var%z+%aresp%=y)
  2281. setequal(/downloads=%var%y)
  2282. seekfall(%var%p)
  2283. setequal(/downloads=%var%z)
  2284. if (%RATIO%)=(NOT OK) then goto (badratio)
  2285. If (%ARESP%)=(INVALID) then goto (invfn)
  2286. if (%ARESP%)=(No) then goto (nothere)
  2287. If (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  2288. selfarea(%aresp%)
  2289. CmpVal(%sec%,%FILSEC%)
  2290. IfTrue(goto (notenuf))
  2291. if (&v)=(Yes) then goto (sometagged)
  2292. *doAdd
  2293. size(%FILPATH%%var%p)
  2294. setequal(p=%aresp%)
  2295. ttime(%aresp%)
  2296. setequal(s=%aresp%)
  2297. setequal(a=%TTIM%)
  2298. if (%free%)=(Yes) then setequal(a=0)
  2299. addvar(%var%a+%NV%TotalTime%=a)
  2300. CmpVal(%var%a,/:LEFT/)  ;see If they have enough time
  2301. IfNotTrue(Goto (notenuftime))
  2302. say(&CR&&15&──────────────────> %RESP% Information:&11&&CR&)
  2303. if (%FREE%)=(Yes) then say(Free Download, *)
  2304. addcomma(%var%p)
  2305. say(%ARESP% bytes &3&(*)
  2306. say(%VAR%S at %BAUD% Baud)&CR&)
  2307. setequal(/nvTotalTime=%var%A)
  2308. setequal(p=%resp%)
  2309. AppendTo(%Pbtemp%tagged2.%NODE%,%FILPATH%%var%p)
  2310. AppendTo(%pbtemp%tagged.%NODE%,%var%p)
  2311. setequal(a=0)
  2312. if (%nv%totalfree%)=() then goto (nh)
  2313. setequal(a=%nv%totalfree%)
  2314. *nh
  2315. if (%free%)=(Yes) then inc(a)
  2316. setequal(/nvTotalFree=%var%a)
  2317. AppendTo(%pbtemp%free.%NODE%,%FREE%)
  2318. selfarea(/:lastdown/)
  2319. log(--,%VAR%P tagged)
  2320. goto (fname)
  2321.         *sometagged
  2322. seekfile(%pbtemp%tagged.%NODE%,%RESP%)
  2323. setequal(p=%RESP%)
  2324. ifnottrue (goto (doadd))
  2325. say(&CR&&15&%RESP% &7&has been found in your tagged files list.)
  2326. lview(%Pbtemp%tagged.%NODE%,10,7)
  2327. say(&CR&&3&Do you still want to tag this file? &9&[   ]&14&*)
  2328. back(4)
  2329. yesnoask()
  2330. if (%resp%)=(No) then say()
  2331. if (%resp%)=(No) then goto (fname)
  2332. setequal(/resp=%var%p)
  2333. goto (doAdd)
  2334.  
  2335.         *invfn
  2336. Display(Display\INVALID)
  2337. flushout
  2338. selfarea(/:LASTDOWN/)
  2339. Enter
  2340. goto (fname)
  2341.         *notenuf
  2342. Display (Display\fbadsec)
  2343. selfarea(/:LASTDOWN/)
  2344. return        
  2345.         *NotHere
  2346. selfarea(/:lastdown/)
  2347. Display(Display\notfnd)
  2348. goto (fname)
  2349.  
  2350. *ret
  2351. linefeed(1)
  2352. return
  2353. *W
  2354. SAY()
  2355. loadEXEC(WS.EXE,/F:%FAREA%.BBS /N:%pbtemp%FREE.%NODE% /O:%pbtemp%TAGGED.%NODE% /2:%pbtemp%TAGGED2.%NODE% /S:%SEC% /T:%RESP%)
  2356. IF (%ARESP%)=(0) THEN GOTO (NOTHERE)
  2357. if (%nv%indel%)=(1) then return
  2358. LOADsub(CONTROL\MACROS\taglist.CTL)
  2359. enter
  2360. return
  2361.  
  2362. *badratio
  2363. Display(Display\BADRATIO)
  2364. selfarea(/:LASTDOWN/)
  2365. linefeed(1)
  2366. goto (fname)
  2367.  
  2368.         *notenuftime
  2369. Display(Display\NODLTIME)
  2370. goto (fname)
  2371.  
  2372. *OlHelp
  2373. SetNv(AtPrompt=Yes)
  2374. SetNv(Helpoption=25)
  2375. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  2376. Goto(Fname)
  2377. NEWSCTL$if (%graphics%)=(RIP) then clearscr
  2378. seek(display\newsltr.asc)
  2379. iftrue (goto (view))
  2380. say(&15&&CR&Sorry, there is no newsletter today.&CR&)
  2381. secpause(1)
  2382. return
  2383.         *view
  2384. log(--,Viewed Newsletter)
  2385. if (%nv%wipmode%)=(1) then goto (WipView)
  2386. display (display\newsltr)
  2387. linefeed(1)
  2388. enter
  2389. return
  2390.  
  2391.         *WipView
  2392. inpopen(display\newsltr.asc)
  2393. setequal(a=0)
  2394. *topf
  2395. inpread
  2396. writeln(%aresp%)
  2397. Inc(a)
  2398. if (%var%a)>(17) then goto (theend)
  2399. fendif (theend)
  2400. goto (topf)
  2401. *theend
  2402. inpclose
  2403.  
  2404. loadmem(control\ewipscr.ctl,setnv(wipf=newstmpl))
  2405. FORWCTLgif (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  2406. SetEqual(/nvold=/:LASTMSG/)
  2407. SetEqual(/nvccs=0)
  2408. menuask(&CR&&15&Forward message to which user (&14&[ENTER] &15&quits)?&12&: &14&*)
  2409. If(%RESP%)=() then Return
  2410. If(%RESP%)=(<CR>) then Return
  2411. seekuser(%RESP%)
  2412. say()
  2413. IfNotTrue (Goto(NotFound))
  2414. ;IfNotTrue (setequal(a=0))
  2415. ;ifnottrue (return)
  2416. ;say(&CR&&11&Forwarding Message...*)
  2417. *GoOn
  2418. iftrue (setequal(a=%NDNUMB%))
  2419. if (%MSGPVT%)=(PRIVATE) then setequal(k=Yes)
  2420. notif (%MSGPVT%)=(PRIVATE) then setequal(k=No)
  2421. MenuEqual(b=%RESP%)
  2422. MenuEqual(l=%MSGTO%)
  2423. SetEqual(/nvaddressee=%RESP%)
  2424. ;If(&b)=(&l) then Goto(SelfForward)
  2425. nicequal(b=%MSGTO%)
  2426. zap(%pbtemp%forw.%NODE%, [ FORWARDED MESSAGE ])                          ;code changed
  2427. appendto(%pbtemp%forw.%NODE%, ■ Originally Addressed to %var%b)          ;5-13-95
  2428. Nicequal(b=%MSGFROM%)
  2429. appendto(%pbtemp%forw.%NODE%, ■ Originally Sent By %VAR%B)            ;
  2430. appendto(%pbtemp%forw.%NODE%, ■ Originally Regarding %MSGDESC%)          ;
  2431. appendto(%pbtemp%forw.%NODE%, ■ Originally dated %MSGSNTD% %MSGSNTT%)    ;
  2432. kill(%pbtemp%forw1.%node%)
  2433. capture(%pbtemp%forw1.%NODE%)
  2434. Goto(ClearAndIns)
  2435. ;loadexec(command.com,/c copy forw.%NODE%+forw1.%NODE% forwrd.%NODE% >nul)
  2436. *DoIt
  2437. inittxt
  2438. import(%pbtemp%forwrd.%NODE%,,1,100)
  2439. SetEqual(/nvaddresser=%MSGFROM%)
  2440. SetEqual(/nvsubject=%MSGDESC%)
  2441. ;LoadMem(control\macros\menter.ctl,goto(Add))
  2442. say(&CR&&11&Forwarding Message...*)
  2443. writemsg(%NV%CONF%,%NV%ADDRESSEE%,%MSGFROM%,%MSGDESC%,%var%a,%var%k,0,%MSGNET%,%MSGATTNAME%,%STOREDEXT%)
  2444. SelArea(%NV%OLD%)
  2445. SetEqual(/nvold=)
  2446. SetEqual(/nvconf=)
  2447. say(Done!)
  2448. Say(&4&--- Message Sent ---)
  2449. himsg(/:LASTMSG/)
  2450. setequal(f=%ARESP%)
  2451. return
  2452.  
  2453. *SelfForward
  2454. capture(%pbtemp%forwrd.%NODE%)
  2455. Goto(DoIt)
  2456.  
  2457. *ClearAndIns
  2458. inittxt
  2459. SetEqual(/nvconf=/:LASTMSG/)
  2460. Say(&15&Would you like to forward this message to a different conference? (&12&Y&15&/&12&N&15&)&14&*)
  2461. Back(4)
  2462. YesNoAsk(*)
  2463. If(%RESP%)=(Yes) Then Goto(NewConf)
  2464. *Insert2
  2465. Say(&CR&&15&Would you like to insert any text into the forwarded message? (&12&Y&15&/&12&N&15&)&14&*)
  2466. Back(4)
  2467. YesNoAsk(*)
  2468. If(%RESP%)=(Yes) then Goto(Add)
  2469. Goto(abt)
  2470.  
  2471. *add
  2472. resetpause
  2473. If (%FULL%)=(Yes) Then Goto (fmode)
  2474. ClearScr
  2475. Say(&14&You may now enter text to insert into the forward.  Press (&11&ENTER&14&) to end.&CR&)
  2476. Say(&3&    (--------/---------/---------/---------/---------/---------/---------/----))
  2477. If(%MAXLINE%)>(1) then showtxt2(15,7)
  2478. gettext(15,7,%MAXLINE%,99)
  2479. delextra
  2480. Goto(ent)
  2481.  
  2482.   *save  
  2483. kill(%pbtemp%forw3.%NODE%)
  2484. ;Say(MAXLINE=%MAXLINE%)
  2485. ;Enter
  2486. capture(%pbtemp%forw3.%node%,%MAXLINE%)
  2487. NicEqual(b=%NAME%)
  2488. Kill(%pbtemp%forw2.%NODE%)
  2489. Zap(%pbtemp%forw2.%NODE%,Text that follows inserted by %VAR%B ------------------------------>)
  2490. AppendTo(%pbtemp%forw2.%NODE%,)
  2491. Kill(%pbtemp%forw4.%NODE%)
  2492. Zap(%pbtemp%forw4.%NODE%, )
  2493. ;AppendTo(%pbtemp%forw4.%NODE%,---------- End Of Inserted Text ------------->)
  2494. ;AppendTo(%pbtemp%forw4.%NODE%,)
  2495. AppendTo(%pbtemp%forw4.%NODE%,Original Text of Message Follows: -------------------------------------->)
  2496. AppendTo(%pbtemp%forw4.%NODE%,)
  2497. loadexec(command.com,/c copy %pbtemp%forw.%NODE%+%pbtemp%forw2.%NODE%+%pbtemp%forw3.%NODE% %pbtemp%forwt.%node% >nul)
  2498. loadexec(command.com,/c copy %pbtemp%forwt.%node%+%pbtemp%forw4.%NODE%+%pbtemp%forw1.%NODE% %pbtemp%forwrd.%NODE% >nul)
  2499. Goto(DoIt)  
  2500.  
  2501.   *ent
  2502. display (display\FWD)
  2503. Say(&3&What would you like to do with the text to insert?&12&: &15&*)
  2504. MenuKey
  2505. BigNiceSay (t:Throw Away,s:Save,e:Edit,a:Add,L:List,d:Delete Line,h:help)
  2506. BigIf (t:abort,s:save,e:edit,L:list,a:add,d:del,h:help)
  2507. Say(&CR&&12&Invalid selection ... Please try again.&CR&)
  2508. FlushOut
  2509. Goto (ent)
  2510.  
  2511.   *help
  2512. NotIf (&z)=(15) Then display(display\help\fwd,/:SEC/)
  2513. Goto (ent)
  2514.  
  2515.   *del
  2516. showtxtl(11,3)
  2517. cMenuAsk (&CR& &3&Please enter the first line to delete&12&: &15&*)
  2518. Number(%RESP%)
  2519. IfNotTrue (Goto (invn))
  2520. cmpval(%RESP%,%MAXLINE%)
  2521. IfNotTrue (NotIf (%RESP%)=(%MAXLINE%) Then Goto (invn))
  2522. SetEqual(e=%RESP%)
  2523. Say(&CR&&10&If you only want to delete one line, press (&11&ENTER&10&) here.)
  2524. cMenuAsk (%CRON%&3&  Please enter the last line to delete&12&: &15&*)
  2525. SetEqual(g=%RESP%)
  2526. If (&g)=(<CR>) Then SetEqual(g=%var%e)
  2527. Say(&CR&&14&You have selected to delete the following block of text:)
  2528. ShowTxtT(15,7,%VAR%E,%VAR%G)
  2529. Say(&15&Are you sure you want to delete this text? (&12&Y&15&/&12&N&15&)&14&*)
  2530. Back(4)
  2531. SetEqual(/nvyndef=%YESNODEF%)
  2532. Default(N)
  2533. YesNoAsk(*)
  2534. Default(%NV%YNDEF%)
  2535. SetEqual(/nvyndef=)
  2536. NotIf(%RESP%)=(Yes) then goto(delabort)
  2537.  
  2538. DelLines(%var%e,%var%g)
  2539. If (%ARESP%)=(ERROR) Then Goto (invn)
  2540. Say(&CR&&11&Lines %var%e to %var%G have been deleted.)
  2541. Goto (ent)
  2542.  
  2543.   *delabort
  2544.    Say(&CR&&12&Delete text aborted...)
  2545.    Goto(ent)
  2546.   
  2547.   *list
  2548. linefeed(1)
  2549. showtxtl(11,3) ;showtxtL is the same as showtxt except shows line numbers...
  2550. linefeed(1)
  2551. enter
  2552. Goto (ent)
  2553.  
  2554.   *edit
  2555. If (%FULL%)=(Yes) Then Goto (add)
  2556. cMenuAsk (&CR&&3&Which line would you like to edit?&12&: &15&*)
  2557. Number(%RESP%)
  2558. IfNotTrue (Goto (invn))
  2559. If (%RESP%)=(%MAXLINE%) Then Goto (goedit)
  2560. linefeed(1)
  2561. cmpval(%RESP%,%MAXLINE%)
  2562. If (%ARESP%)=(No) Then Goto (Invn)
  2563.  
  2564.   *goedit
  2565. SetEqual(h=%MAXLINE%)
  2566. gettext(15,7,%RESP%,%RESP%)
  2567. setmax(%var%h)
  2568. Goto (ent)
  2569.  
  2570.   *invn
  2571. Say(&14&That line number doesn't exist in this message.  &11&Try again, please.&CR&)
  2572. Goto (ent)
  2573.  
  2574.    *abort
  2575.    Say(&CR&&15&Do you still want this message to be forwarded? (&12&Y&15&/&12&N&15&)&14&*)
  2576.    Back(4)
  2577.    SetEqual(/nvyndef=%YESNODEF%)
  2578.    Default(N)
  2579.    YesNoAsk(*)
  2580.    Default(%NV%YNDEF%)
  2581.    SetEqual(/nvyndef=)
  2582.    If(%RESP%)=(Yes) then Goto(Abt)      
  2583.    
  2584.    kill(%pbtemp%forw1.%node%)
  2585.    kill(%pbtemp%forw.%node%)
  2586.    inittxt
  2587.    SetMode(reg)
  2588.    Say(&CR&&12&Message forward aborted!&CR&)
  2589.    Return
  2590.  
  2591.    *abt
  2592.    inittxt
  2593.    SetMode(reg)
  2594.    If(/:LASTMSG/)<>(%NV%CONF%) then AppendTo(%pbtemp%forw.%NODE%, ■ Originally in Conference #/:LASTMSG/)
  2595.    appendto(%pbtemp%forw.%NODE%, )
  2596.    kill(%pbtemp%forw2.%NODE%)
  2597.    kill(%pbtemp%forw3.%NODE%)
  2598.    kill(%pbtemp%forw4.%NODE%)
  2599.    loadexec(command.com,/c copy %pbtemp%forw.%NODE%+%pbtemp%forw1.%NODE% %pbtemp%forwrd.%NODE% >nul)
  2600.    Goto(DoIt)
  2601.  
  2602.    *newconf
  2603. Display(display\CHG,/:SEC/)
  2604. MenuAsk(%CRON%&CR&&15&Forward to which conference? &14&*)
  2605. If(%RESP%)=(<CR>) then Goto(confcancel)
  2606. Number(%RESP%)
  2607. IfNotTrue(Goto(InvConfNum))
  2608. If(%RESP%)>(%MAXAREA%) then Goto(Invconfnum)
  2609. SetEqual(/nvold=/:LASTMSG/)
  2610. SetEqual(/nvconf=%RESP%)
  2611. SelArea(%NV%CONF%)
  2612. EnufSec(%AREASEC%)
  2613. IfNotTrue(Goto(NotEnuf))
  2614. Goto(insert2)
  2615.  
  2616. *NotEnuf
  2617. SelArea(%NV%OLD%)   ; go back to previously selected message area
  2618. SetEqual(/nvold=)
  2619. SetEqual(/nvconf=)
  2620. Say(&CR&&12&Your security level does not permit you access to that area.)
  2621. SecPause(1)
  2622. Goto(NewConf)
  2623.  
  2624. *invconfnum
  2625. Say(&CR&&12&That is an invalid conference number!&CR&)
  2626. SecPause(1)
  2627. Goto(newconf)
  2628.  
  2629. *confcancel
  2630. Say(&CR&&12&Operation Cancelled. This message will not be forwarded to another conference!)
  2631. SecPause(2)
  2632. Goto(Insert2)
  2633.  
  2634. *notfound
  2635. MenuEqual(b=%RESP%)
  2636. Say(&12&%RESP% could not be located in our user index!&CR&)
  2637. Say(&15&Forward the message anyway? (&12&Y&15&/&12&N&15&)&14&*)
  2638. Back(4)
  2639. YesNoAsk(*)
  2640. SetEqual(a=0) ;a is user # of addressee of forward
  2641. If(%RESP%)=(No) then Return
  2642. SetEqual(/RESP=%VAR%B)
  2643. Goto(GoOn)
  2644. EDNEWSCTL█inittxt
  2645. Import (news.txt,,1,99)
  2646. showtxt2(15,7)
  2647. gettext(15,7,%MAXLINE%,99)
  2648. delextra
  2649.  
  2650. zap(news.txt)
  2651. setequal(a=0)
  2652.  
  2653. do
  2654. if (&a)=(%MAXLINE%) then return
  2655. inc(a)
  2656. showline(%var%a)
  2657. appendto(news.txt,%aresp%)
  2658. loop
  2659. KILLFILECTL?*fname
  2660. say(&CR&&3&Please enter the name of the file to kill&12&: &14&(            )&15&*)
  2661. back(13)
  2662. menuask(%CRON%%LEN%12%*)
  2663. If (%RESP%)=(<CR>) Then return
  2664. adddef(.%DEFEXT%)
  2665. say(&CR&&11&Please wait!... We're searching for the file...*)
  2666. seekfall(%RESP%)
  2667. if (%ARESP%)=(INVALID) then goto (invfn)
  2668. if (%ARESP%)=(No) then goto (nothere)
  2669. if (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  2670. if (%RESP%)=(%ARESP%) then goto (moveerr)
  2671. selFarea(%ARESP%)
  2672. setequal(l=%RESP%)
  2673. setequal(u=1)
  2674. say(Found!&7&)
  2675.  
  2676.         *stopinp
  2677. say(&CR&&14&Please wait, killing file...*)
  2678. setequal(j=%FILPATH%)
  2679. move2(%var%l,%var%j,,%FILAREA%,%FAREA%)
  2680. resetlist
  2681. listfile(%FAREA%)
  2682.  
  2683.         *endmove
  2684. selfarea(/:LASTDOWN/)
  2685. say(Done!)
  2686. Return
  2687.         *invfn
  2688. Display(Display\INVALID)
  2689. flushout
  2690. selfarea(/:LASTDOWN/)
  2691. Enter
  2692. goto (fname)
  2693.         *notenuf
  2694. Display (Display\fbadsec)
  2695. selfarea(/:LASTDOWN/)
  2696. return        
  2697.         *NotHere
  2698. Display(Display\notfnd)
  2699. goto (fname)
  2700.         *moveerr
  2701. say(&CR&&14&The directory you specify is where the file already resides!&CR&)
  2702. selfarea(/:lastdown/)
  2703. return
  2704. PICKMUSECTL┼;Say(Do you want to hear &11&ANSI &3&music? &9&[   ]&14&*)
  2705. Say(&12&Only select 'Yes' to the following question if you are sure that your terminal)
  2706. Say(program supports enhanced sound (i.e. WAV files, ANSI music, etc.).&CR&)
  2707. Say(&15&Do you want to use enhanced sound? (&12&Y&15&/&12&N&15&)*)
  2708. Back(4)
  2709. YesNoAsk(*)
  2710. if (%RESP%)=(Yes) then SetEqual(/ANSMUSIC=Y)
  2711. if (%RESP%)=(No) then setequal(/ANSMUSIC=N)
  2712. Log(--,Changed Enhanced Sound Mode)
  2713. return
  2714. TAG-WIPCTL▌*thetop
  2715.  
  2716. setnv(NoInfo=1)
  2717. loadsub(control\ewipscr.ctl,setnv(wipf=tag))
  2718.  
  2719. *getresp0
  2720. if (%nv%fromsub%)=(1) then
  2721.   setnv(fromsub=)
  2722.   return
  2723. endif
  2724. if (%nv%wiprestreq%)=(1) then goto (thetop)
  2725. setequal(c=0A~)
  2726. Jump (wipc)
  2727.  
  2728. jump (getinput)
  2729. if (%nv%wiprestreq%)=(1) then goto (thetop)
  2730.  
  2731. writeln(Response from user: "%resp%")
  2732. if (%resp%)=(Tag) then goto (dotag)
  2733. if (%resp%)=(quit) then goto (doret)
  2734. if (%resp%)=(Exit) then goto (doret)
  2735. setequal(b=%resp%)
  2736. find(&b,,)
  2737. if (%aresp%)<=(1) then goto (NotListC)
  2738. addvar(%aresp%+-1=e)
  2739. addvar(%aresp%+1=f)
  2740. get(&b,1,%var%e)
  2741. setnv(wipc=%aresp%)
  2742. get(&b,%var%f,1000)
  2743. setequal(b=%aresp%)
  2744. goto (getresp0)
  2745. *NotListC
  2746. find(&b,;)
  2747. if (%aresp%)<=(1) then goto (NoCmnd)
  2748. addvar(%aresp%+-1=e)
  2749. addvar(%aresp%+1=f)
  2750. get(&b,1,%var%e)
  2751. SetNv(WipC=%aresp%)
  2752. setnv(cText=)
  2753. len(%var%b)
  2754. if (%var%f)<=(%aresp%) then
  2755. upcase(b)
  2756. get(&b,%var%f,1000)
  2757. SetNv(Ctext=%aresp%)
  2758. endif
  2759. setnv(filename=%nv%cText%)
  2760. if (%nv%wipc%)=(filename) then goto (dotag)
  2761. *NoCmnd
  2762. setnv(wtxt=)
  2763. goto (getResp0)
  2764.  
  2765.  
  2766. *GCHAR
  2767. COMPRINT(%NV%TEXT%)
  2768. SETEQUAL(A=0)
  2769. DO
  2770. COMKEY
  2771. ASCII
  2772. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  2773. INC(A)
  2774. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  2775. IF(%ARESP%)=(&B) THEN RET
  2776. IF(&A)>(200) THEN RET
  2777. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  2778. DELAY18TH(2)
  2779. LOOP
  2780. *WIPC
  2781. LOCALKEY(1)
  2782. IFNOTTRUE(GOTO(NOLKEY))
  2783. SYSKEYCHECK
  2784. SETEQUAL(/RESP=)
  2785. SETEQUAL(/RESP=)
  2786. *NOLKEY
  2787. CCARRIER
  2788. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  2789. CHECKSUM(%VAR%C)
  2790. SETEQUAL(B=6)
  2791. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  2792. SETNV(PBACK=)
  2793. JUMP(GCHAR)
  2794. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  2795. setequal(c=%aresp%)
  2796. SETEQUAL(/IBUFF=%NV%PBACK%)
  2797. LEN(%NV%PBACK%)
  2798. SETEQUAL(/IBUFF0=%ARESP%)
  2799. SETEQUAL(/ARESP=%VAR%C)
  2800. RET
  2801. *NOC0
  2802. log(<<,Carrier lost.)
  2803. quitbbs
  2804.  
  2805. *wipask
  2806. loadsub(control\wipask.ctl)
  2807. ret
  2808.  
  2809. *getinput
  2810. writeln(Waiting for input from remote user.)
  2811. setequal(y=180)
  2812. jump (wipask)
  2813. if (%aresp%)<>(24) then ret
  2814. loadsub(control\wipask.ctl,goto(twarn))
  2815. setequal(y=60)
  2816. jump (wipask)
  2817. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  2818. ret
  2819.  
  2820. *okbox0
  2821. Jump (wipc)
  2822. comlineinput(180,l)
  2823. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  2824. if (%resp%)=() then goto (okbox)
  2825. ret
  2826.  
  2827. *whoc
  2828. loadsub(control\macros\mwhowip.ctl)
  2829. goto(thetop)
  2830.  
  2831.  
  2832.  
  2833. *dotag
  2834. *fname
  2835. setequal(/resp=%nv%filename%)
  2836. setnv(filename=)
  2837. Get(%RESP%,1,1)
  2838. If(%ARESP%)=(?) then Goto(OlHelp)
  2839. if (%RESP%)=() then goto (getresp0)
  2840. setequal(s=%resp%)
  2841. upcase(s)
  2842. adddef(.%DEFEXT%)
  2843.  
  2844. setequal(r=%resp%)
  2845. upcase(r)
  2846. setequal(/resp=%var%r)
  2847. setnv(r=%var%r)
  2848. seek(passfile.lst)
  2849. ifnottrue(goto(nopass))
  2850. inpopen(passfile.lst)
  2851. setequal(a=%resp%,)
  2852. len(%var%a)
  2853. setequal(c=%aresp%)
  2854. do
  2855. inpread
  2856. setequal(d=%aresp%)
  2857. get(&d,1,%var%c)
  2858. if (%aresp%)=(%var%a) then goto (el)
  2859. fendif(nopass)
  2860. loop
  2861. *el
  2862. inc(c)
  2863. get(&d,%var%c,100)
  2864. setequal(a=%aresp%)
  2865. setnv(wiprestreq=1)
  2866. loadsub(control\exitwip.ctl)
  2867. Say(&CR&&3&Please enter the password for this file&12&: &15&*)
  2868. cgetpass(o)
  2869. if (%resp%)=(%var%a) then goto (nopass)
  2870. inpclose
  2871. setequal(c=01~)
  2872. jump (wipc)
  2873. comlineinput(45,l)
  2874. goto(fname)
  2875. *nopass
  2876. if (%nv%wipmode%)=(1) then goto (inwip)
  2877. setequal(c=01~)
  2878. jump (wipc)
  2879. comlineinput(45,l)
  2880. *inwip
  2881. setequal(r=%nv%r%)
  2882. setnv(r=)
  2883. setequal(/resp=%var%r)
  2884. inpclose
  2885.  
  2886. FIND(%RESP%,?)
  2887. NOTIF (%ARESP%)=(0) THEN GOTO (W)
  2888. FIND(%RESP%,*)
  2889. NOTIF (%ARESP%)=(0) THEN GOTO (W)
  2890. seek(%pbtemp%tagged.%NODE%)
  2891. setequal(v=%aresp%)
  2892. *stseek
  2893. setequal(p=%RESP%)
  2894. setnv(p=%resp%)
  2895. ;len(%var%s)
  2896. ;back(%ARESP%)
  2897. setequal(m=%nv%ctext%)
  2898. ;upcase(m)
  2899. ;say(%VAR%M)
  2900. setequal(z=/:downloads/)
  2901. lines(%pbtemp%tagged.%node%)
  2902. addvar(/:dailydl/+%aresp%=y)
  2903. if (%var%y)=(%dailyL%) then goto (badratio)
  2904. addvar(%var%z+%aresp%=y)
  2905. setequal(/downloads=%var%y)
  2906. seekfall(%var%p)
  2907. setequal(/downloads=%var%z)
  2908. if (%RATIO%)=(NOT OK) then goto (badratio)
  2909. If (%ARESP%)=(INVALID) then goto (invfn)
  2910. if (%ARESP%)=(No) then goto (nothere)
  2911. If (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  2912. selfarea(%aresp%)
  2913. CmpVal(%sec%,%FILSEC%)
  2914. IfTrue(goto (notenuf))
  2915. if (&v)=(Yes) then goto (sometagged)
  2916. *doAdd
  2917. setequal(p=%nv%ctext%)
  2918. setnv(p=)
  2919. size(%FILPATH%%var%p)
  2920. setequal(p=%aresp%)
  2921. ttime(%aresp%)
  2922. setequal(s=%aresp%)
  2923. setequal(a=%TTIM%)
  2924. if (%free%)=(Yes) then setequal(a=0)
  2925. addvar(%var%a+%NV%TotalTime%=a)
  2926. CmpVal(%var%a,/:LEFT/)  ;see If they have enough time
  2927. IfNotTrue(Goto (notenuftime))
  2928. setequal(c=13~%nv%ctext% Information: )
  2929. write(%nv%ctext% Information: )
  2930. if (%FREE%)=(Yes) then setequal(c=%var%cFree Download, )
  2931. if (%free%)=(Yes) then writeln(Free Download,)
  2932. addcomma(%var%p)
  2933. setequal(c=%var%c%ARESP% bytes ()
  2934. write(%aresp% bytes ()
  2935. setequal(c=%var%c%VAR%S at %BAUD% Baud)~%nv%ctext% Tagged!~1~)
  2936. writeln(%var%s at %baud% Baud))
  2937. writeln( -> %nv%ctext% Tagged! <-)
  2938. setnv(a=%var%a)
  2939. ;writeln(%var%c)
  2940. jump (okbox0)
  2941. setequal(a=%nv%a%)
  2942. setnv(a=)
  2943. setequal(/nvTotalTime=%var%A)
  2944. setequal(p=%nv%ctext%)
  2945. AppendTo(%pbtemp%tagged2.%NODE%,%FILPATH%%var%p)
  2946. AppendTo(%pbtemp%tagged.%NODE%,%var%p)
  2947. setequal(a=0)
  2948. if (%nv%totalfree%)=() then goto (nh)
  2949. setequal(a=%nv%totalfree%)
  2950. *nh
  2951. if (%free%)=(Yes) then inc(a)
  2952. setequal(/nvTotalFree=%var%a)
  2953. AppendTo(%pbtemp%free.%NODE%,%FREE%)
  2954. selfarea(/:lastdown/)
  2955. log(--,%VAR%P tagged)
  2956. setequal(c=07~filename~ ~)
  2957. jump (wipc)
  2958. goto (getresp0)
  2959.  
  2960.         *sometagged
  2961. seekfile(%pbtemp%tagged.%NODE%,%nv%ctext%)
  2962. setequal(p=%nv%ctext%)
  2963. ifnottrue (goto (doadd))
  2964. writeln(%resp% is already tagged.)
  2965. setequal(c=13~%resp% is already tagged.~File Already Tagged~1~)
  2966. jump (okbox0)
  2967. setnv(filename=%nv%ctext%)
  2968. goto (getresp0)
  2969.  
  2970.         *invfn
  2971. flushout
  2972. setequal(c=13~Invalid filename format.  Filename must consist of eight characters followed by a period followed by a three character extension.~Invalid Filename~1~)
  2973. jump (okbox0)
  2974. selfarea(/:LASTDOWN/)
  2975. setnv(filename=%nv%ctext%)
  2976. goto (getresp0)
  2977.  
  2978.         *notenuf
  2979. setequal(c=13~Your security level is not high enough to access that file.~Access Denied~1~)
  2980. jump (okbox0)
  2981. selfarea(/:LASTDOWN/)
  2982. setnv(filename=%nv%ctext%)
  2983. goto (getresp0)
  2984.  
  2985.         *NotHere
  2986. setequal(c=13~The file could not be found.  Please check the spelling and try again.~File Not Found~1~)
  2987. jump (okbox0)
  2988. selfarea(/:lastdown/)
  2989. setnv(filename=%nv%ctext%)
  2990. goto (getresp0)
  2991.  
  2992. *ret
  2993. linefeed(1)
  2994. goto (doret)
  2995. *W
  2996. SAY()
  2997. loadEXEC(WS.EXE,/F:%FAREA%.BBS /N:%pbtemp%FREE.%NODE% /O:%pbtemp%TAGGED.%NODE% /2:%pbtemp%TAGGED2.%NODE% /S:%SEC% /T:%RESP%,)
  2998. IF (%ARESP%)=(0) THEN GOTO (NOTHERE)
  2999. if (%nv%fromsub%)=(1) then
  3000.   setnv(fromsub=)
  3001.   return
  3002.   endif
  3003. loadmem(control\macros\wipedtag.ctl)
  3004.  
  3005. *badratio
  3006. selfarea(/:LASTDOWN/)
  3007. setequal(c=13~Your upload to download ratio has been exceeded.  You must upload a file before you will be permitted to download any more files from the system.~Ratio Exceeded~1~)
  3008. jump (okbox0)
  3009. setnv(filename=%nv%ctext%)
  3010. goto (getresp0)
  3011.  
  3012.         *notenuftime
  3013. setequal(c=13~You do not have enough time to download that file.~Not Enough Time~1~)
  3014. jump (okbox0)
  3015. setnv(filename=%nv%ctext%)
  3016. goto (getresp0)
  3017.  
  3018. *OlHelp
  3019. loadsub(control\exitwip.ctl)
  3020. SetNv(AtPrompt=Yes)
  3021. SetNv(Helpoption=25)
  3022. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3023. Goto(thetop)
  3024.  
  3025. *doret
  3026. setnv(d=)
  3027. setnv(p=)
  3028. return
  3029. DEFPROTCTLS*PickProt
  3030. Display (Display\defprots)
  3031. CAsk (%CRON%&15&Which protocol would you like (or N for None)?&12&: &14&*)
  3032. If(%RESP%)=(<CR>) then Return
  3033. Get(%RESP%,1,1)
  3034. If(%ARESP%)=(?) then Goto(Olhelp)
  3035. If(%ARESP%)=(/) then Goto(Anywhere)
  3036. MenuEqual(/protocol=%RESP%)
  3037. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Default Protocol to %RESP%)
  3038. return
  3039.  
  3040. *OlHelp
  3041. SetNv(AtPrompt=Yes)
  3042. SetNv(Helpoption=14)  ; protocol help
  3043. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3044. Goto(PickProt)
  3045.  
  3046. *Anywhere
  3047. Len(%RESP%)
  3048. If(%ARESP%)<(2) then Goto(Bsel)
  3049. LoadSub(control\macros\anywhere.ctl)
  3050. Goto(PickProt)
  3051. MREADERCTLÜchkmes
  3052. kill (gpm%node%)
  3053. clearscr
  3054. exec(pwrmail\pwrmail.exe node%node%.inf %BBSP%)
  3055. seek(gpm%node%)
  3056. ifnottrue(return)
  3057. loadmem(control\macros\bye.ctl)
  3058. WORKCTL▓If(%NV%INTL%)=(Yes) then Goto(Intl)
  3059. If(%NV%INTL%)=(No) then Goto(Normal)
  3060. Say(&15&Do you have an international phone number? (&12&Y&15&/&12&N&15&)&14&*)
  3061. Back(4)
  3062. YesNoAsk(*)
  3063. If(%RESP%)=(No) then Goto(normal)
  3064. *Intl
  3065. menuask(%CRON%&CR&&15&What is your work phone number?&12&: &14&*)
  3066. If(%RESP%)=(<CR>) then Return
  3067. Len(%RESP%)
  3068. If(%ARESP%)<(10) then Goto(dp)
  3069. repeating(%resp%)
  3070. iftrue(goto (dp))
  3071. SetEqual(/WORK=%RESP%)
  3072. *logandret
  3073. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Work Phone # to %RESP%)
  3074. return
  3075.  
  3076. *dp
  3077. log(!!,User attempted to change work phone)
  3078. log(!!,number to %RESP%, but is)
  3079. log(!!,an invalid/existing phone number!)
  3080. say(&CR&&12&You have entered an invalid phone number!&7&&CR&)
  3081. SecPause(2)
  3082. return
  3083.  
  3084. *normal
  3085. Say(&CR&&15&Please enter your work phone number&12&: &14&*)
  3086. Picture(%CRON%###-###-####)
  3087. If(%RESP%)=() then Goto(SetIt)
  3088. repeating(%resp%)
  3089. iftrue(goto (dp))
  3090. *SetIt
  3091. SetEqual(/WORK=%RESP%)
  3092. Goto(logandret)
  3093. SCRLENCTL<*GetScrLen
  3094. ;MenuAsk (&3&Please enter the new length for your screen&12&: &15&*)
  3095. Say(&15&Please enter the length of your screen&12&: (   )&14&*)
  3096. Back(4)
  3097. SetEqual(a=/:SCREENLEN/)
  3098. SetLen(a=3)
  3099. SetFill(%VAR%A)
  3100. MenuAsk(%CRON%%LEN%3%*)
  3101. If(%RESP%)=(<CR>) then Return
  3102. Get(%RESP%,1,1)
  3103. If(%ARESP%)=(?) then Goto(OlHelp)
  3104. SetEqual(/screenlen=%RESP%)
  3105. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Screen Length to %RESP%)
  3106. return
  3107.  
  3108. *OlHelp
  3109. SetNv(AtPrompt=Yes)
  3110. SetNv(Helpoption=135) ; screen length help
  3111. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3112. Goto(GetScrLen)
  3113.  
  3114. PASSCTL░*GetPass
  3115. ;Say(What would you like your new password to be?&12&: &15&*)
  3116. Say(&15&What do you want as your password?&12&: &12&(*)
  3117. Spaces(20)
  3118. Say()&14&*)
  3119. Back(21)
  3120. cgetpass(%MIN%1%%LEN%20%.)
  3121. ;If(%ARESP%)=(-1) then Return   ; chr(-1) is getpass's way of returning <CR>
  3122. If(%RESP%)=() then Return    ; if <CR> pressed
  3123. If(%RESP%)=(%NAME%) then Goto(TooEasy)
  3124. If(%RESP%)=(/:NAME/) then Goto(TooEasy)
  3125. SetNv(o=%VAR%O)
  3126. MenuEqual(o=%FNAME%)
  3127. If(%RESP%)=(&o) then Goto(TooEasy)
  3128. MenuEqual(o=%LNAME%)
  3129. If(%RESP%)=(&o) then Goto(TooEasy)
  3130. SetEqual(o=%NV%O%)
  3131. SetNv(o=)
  3132. Get(%RESP%,1,1)
  3133. If(%ARESP%)=(?) then Goto(OlHelp)
  3134. If(%ARESP%)=(/) then Goto(Anywhere)
  3135. SetNv(passtemp=%RESP%)
  3136. Say(&CR&&15&Please re-enter your password for verification&12&: &12&(*)
  3137. Spaces(20)
  3138. Say()&14&*)
  3139. Back(21)
  3140. cgetpass(%MIN%1%%LEN%20%.)
  3141. If(%ARESP%)=(-1) then Goto(NoMatch)
  3142. If(%RESP%)<>(%NV%PASSTEMP%) then Goto(NoMatch)
  3143. SetEqual(/PASS=%RESP%)
  3144. SetNv(passtemp=)
  3145. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Password)
  3146. return
  3147.  
  3148. *NoMatch
  3149. Say(&CR&&12&The two passwords did not match. Please try again...&CR&)
  3150. Goto(GetPass)
  3151.  
  3152. *TooEasy
  3153. Say(&CR&&12&Please enter a more unique, hard-to-guess password.&CR&)
  3154. Goto(GetPass)
  3155.  
  3156. *OlHelp
  3157. SetNv(AtPrompt=Yes)
  3158. SetNv(Helpoption=119)  ; help on password entry
  3159. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3160. Goto(GetPass)
  3161.  
  3162. *Anywhere
  3163. Len(%RESP%)
  3164. If(%ARESP%)<(2) then Goto(Bsel)
  3165. LoadSub(control\macros\anywhere.ctl)
  3166. Goto(GetPass)
  3167. ALIASCTLS*GetAlias
  3168. ;Ask(%LEN%20%What would you like your new alias to be?&12&: &15&*)
  3169. Say(&15&What do you want to use as an alias?&12&: (*)
  3170. Spaces(25)
  3171. Say()&14&*)
  3172. Back(26)
  3173. SetEqual(a=/:ALIAS/)
  3174. SetFill(%VAR%A)
  3175. CAsk(%CRON%%LEN%25%*)
  3176. if (%nv%newuser%)<>(Yes) then If(%RESP%)=(<CR>) then Return
  3177. if (%resp%)=(<CR>) then goto (getalias)
  3178. Get(%RESP%,1,1)
  3179. If(%ARESP%)=(?) then Goto(OlHelp)
  3180. If(%ARESP%)=(/) then Goto(Anywhere)
  3181. MenuEqual(a=%RESP%)
  3182. SeekType(a)
  3183. SeekUser(%VAR%A)
  3184. If(%ARESP%)<>(No) then
  3185.   if (%NDNUMB%)<>(%USERN%) then Goto(InUse)
  3186.  endif
  3187. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Alias From (/:ALIAS/) to (%RESP%))
  3188. SetEqual(/ALIAS=%RESP%)
  3189. Return
  3190.  
  3191. *InUse
  3192. Log(--,Tried to Change Alias to (%RESP%))
  3193. Log(--,  -- Alias already in use by another user)
  3194. Say(&CR&&12&That alias is already in use by another user. Please select another...&CR&)
  3195. Goto(GetAlias)
  3196.  
  3197. *OlHelp
  3198. SetNv(AtPrompt=Yes)
  3199. SetNv(Helpoption=123)
  3200. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3201. Goto(GetAlias)
  3202.  
  3203. *Anywhere
  3204. Len(%RESP%)
  3205. If(%ARESP%)<(2) then Goto(Bsel)
  3206. LoadSub(control\macros\anywhere.ctl)
  3207. Goto(GetAlias)
  3208. CITYCTL⌠*GetCity
  3209. Say(&15&What is your City and State address?&12&: (*)
  3210. Spaces(25)
  3211. Say()&14&*)
  3212. Back(26)
  3213. SetEqual(a=/:FROM/)
  3214. SetLen(a=25)
  3215. rtrim(a)
  3216. SetFill(%VAR%A)
  3217. Ask(%cron%%LEN%25%*)
  3218. if (%nv%newuser%)<>(Yes) then If(%RESP%)=(<CR>) then Return
  3219. if (%resp%)=(<CR>) then goto (getcity)
  3220. if (%resp%)=() then goto (getcity)
  3221. Get(%RESP%,1,1)
  3222. If(%ARESP%)=(?) then Goto(Olhelp)
  3223. If(%ARESP%)=(/) then Goto(Anywhere)
  3224. SetEqual(/FROM=%RESP%)
  3225. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed From (City,St))
  3226. return
  3227.  
  3228. *OlHelp
  3229. SetNv(AtPrompt=Yes)
  3230. SetNv(Helpoption=116) ; help on city/state
  3231. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3232. Goto(GetCity)
  3233.  
  3234. *Anywhere
  3235. Len(%RESP%)
  3236. If(%ARESP%)<(2) then Goto(Bsel)
  3237. LoadSub(control\macros\anywhere.ctl)
  3238. Goto(GetCity)
  3239. STREETCTL_*GetAddress
  3240. ;Ask(What is your &11&street&3& address?&12&: &15&*)
  3241. Say(&15&What is your street address (1/2)?&12&: (*)
  3242. Spaces(30)
  3243. Say()&14&*)
  3244. Back(31)
  3245. SetEqual(a=/:STREET1/)  ; STREET1 = Street 1/2
  3246. SetLen(a=30)
  3247. rtrim(a)
  3248. SetFill(%VAR%A)
  3249. Ask(%CRON%%LEN%30%*)
  3250. If(%RESP%)=(<CR>) then Return
  3251. Get(%RESP%,1,1)
  3252. If(%ARESP%)=(?) then Goto(Olhelp)
  3253. If(%ARESP%)=(/) then Goto(Anywhere)
  3254. SetEqual(/STREET1=%RESP%)
  3255. *Street2
  3256. Say(&15&What is your street address (2/2)?&12&: (*)
  3257. Spaces(30)
  3258. Say()&14&*)
  3259. Back(31)
  3260. SetEqual(a=/:STREET/)  ; STREET = Street 2/2
  3261. SetLen(a=30)
  3262. rtrim(a)
  3263. SetFill(%VAR%A)
  3264. Ask(%CRON%%LEN%30%*)
  3265. If(%RESP%)=(<CR>) then
  3266.   SetEqual(/RESP=)
  3267.   Goto(SetIt2)
  3268.  endif
  3269. Get(%RESP%,1,1)
  3270. If(%ARESP%)=(?) then Goto(OlHelp)
  3271. If(%ARESP%)=(/) then Goto(Anywhere)
  3272. *SetIt2
  3273. SetEqual(/STREET=%RESP%)
  3274. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Street Address)
  3275. return
  3276.  
  3277. *OlHelp
  3278. SetNv(AtPrompt=Yes)
  3279. SetNv(Helpoption=115)
  3280. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3281. Goto(GetAddress)
  3282.  
  3283. *Anywhere
  3284. Len(%RESP%)
  3285. If(%ARESP%)<(2) then Goto(Bsel)
  3286. LoadSub(control\macros\anywhere.ctl)
  3287. Goto(GetAddress)
  3288. SEARCHMCTLQhimsg(/:LASTMSG/)
  3289. setequal(f=%ARESP%)
  3290. loadmem(control\READ.CTL,goto (search))
  3291. VIEWSCRCTL_loadsub(control\macros\view.ctl)
  3292. log(--,Viewed %DFIL%)
  3293. setequal(/nvviewme=)
  3294. return
  3295. return
  3296. BLTDLCTLÉ
  3297. ;Configuration:
  3298.  
  3299. setequal(^51=c:\fd\fdo.bat)  ;FULL PATH TO FILE
  3300. setequal(^50=fdo.bat)        ;FILENAME ITSELF
  3301.  
  3302.  
  3303.  
  3304. ;-----------------------------------------------------------------------------
  3305. setequal(d=^:50^)
  3306.  
  3307. *PICKP
  3308.  Display (Display\DN-PROTS)
  3309.  MenuAsk (%MIN%1%&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  3310.  Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  3311.  NotIf (%ARESP%)=(0) Then return
  3312.  if (%resp%)=(Q) then return
  3313.  SetEqual(b=%RESP%)
  3314.  Seek(protocol\%var%b-VD.BT)    ;check to see If protocol exists..
  3315.  IfNotTrue(Goto (pickp))
  3316.  Len(%var%b)
  3317.  NotIf (%ARESP%)=(1) then goto (nobat)
  3318.  Say(&CR&&3&       Would you like to download this file? &9&[   ]&14&*)
  3319.  Back(4)
  3320.  YesNoAsk(*)
  3321.  If (%RESP%)=(No) Then return
  3322.  say(&3&Would you like us to log you off afterwards? &9&[   ]&14&*)
  3323. back(4)
  3324. yesnoask(*)
  3325. SetEqual(m=%RESP%)
  3326.  fcopy(^:51^,zvtemp\^:50^)
  3327.  Say(&CR&&11&We're sending "^:50^".  Please get ready to receive it now.)
  3328.  If (%LOCAL%)=(TRUE) Then return
  3329.  FixFile(protocol\%var%b-vd.bt,protocol\%var%b-vd.bat)
  3330.  InitClock
  3331.  Exec(protocol\%var%b-vd.BAT│)
  3332.  Kill(protocol\%var%b-vd.bat)
  3333.  If (%LOCAL%)=(FALSE) Then toglocal
  3334.  NotIf (%ARESP%)=(0) Then Goto (nsc)
  3335.  XferTime
  3336.  SetEqual(e=%ARESP%)
  3337.  Size(zvtemp\%var%d)
  3338.  MultVar(%XMIN%*60=o)
  3339.  DivVar(%ARESP%/%var%o=g)         ;calculate CPS rate
  3340.  CnvtK(%ARESP%)
  3341.  AddVar(%ARESP%+/:KDOWN/=o)
  3342.  SetEqual(/KDOWN=%var%o)
  3343.  Say(%BEEP%*)
  3344.  Log(--,%var%d Downloaded from %var%e.)
  3345.  Log(--,Rate: %var%g CPS)
  3346.  AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  3347.  SetEqual(a=/:DOWNLOADS/)
  3348.  inc(a)
  3349.  SetEqual(/DOWNLOADS=%var%a)
  3350.  If (%LOCAL%)=(TRUE) Then toglocal
  3351.  Display (Display\SUCCESS)
  3352.  if (&m)=(Yes) then loadsub(control\autooff.ctl)
  3353.  Enter
  3354.  return
  3355.  
  3356. *NOBAT
  3357.  Say(&CR&&15&No batch protocols allowed for transfering this file.&CR&)
  3358.  Goto (pickp)
  3359.  
  3360. *nsc
  3361. toglocal
  3362. return
  3363. VERCTL/clearscr
  3364. say(&14&Powerboard &3&Bulletin Board System, Ver. &11&%ver%&7&)
  3365. say(&CR&Copyright, 1991-94, NuIQ Software, Inc.)
  3366. say(All Rights Reserved.&CR&)
  3367. say(&CR&&14&Microsoft(R) &3&MS-DOS, Ver. &11&%DOSVER%&7&)
  3368. say(&CR&Copyright Microsoft Corporation)
  3369. say(All Rights Reserved.&CR&)
  3370. enter
  3371. return
  3372. MESSFW0CTL√setequal(g=0)
  3373. namequal(a=%MSGTO%)
  3374. namequal(b=%NAME%)
  3375. enufsec(100)
  3376. iftrue(goto(okf))
  3377. if (&a)=(&b) then goto (okf)
  3378. namequal(a=%MSGFROM%)
  3379. if (&a)=(&b) then goto (okf)
  3380. setequal(s=5)
  3381. setequal(g=1)
  3382. return
  3383. *okf
  3384. loadmem(control\macros\forw0.ctl)
  3385. YOURCTLGcmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  3386. say(&CR&&11&Searching...|)
  3387. clearmem
  3388. seekto(/:LASTMSG/,%NAME%,%RESP%)
  3389. if (%ARESP%)=(ERROR) then return
  3390. log(--,Scanned for (Y)our mail)
  3391. eline(25)
  3392. zap(seeking.%NODE%,1)
  3393. appendto(seeking.%NODE%,%NAME%)
  3394. setequal(r=20)
  3395. setequal(u=0)
  3396. return
  3397. FREADCTL7if (%nv%wipmode%)=(1) then loadmem(control\macros\freadwip.ctl)
  3398. if (%graphics%)=(RIP) then clearscr
  3399. display(display\READF)
  3400. *fname
  3401. say(&3&Enter name of the file to read (ENTER=Quit)&12&: &14&(            )&15&*)
  3402. back(13)
  3403. menuask(%NOCR%%CRON%%LEN%12%*)
  3404. if (%RESP%)=(<CR>) then goto (ret)
  3405. adddef(.%DEFEXT%)
  3406. *here
  3407. seekfall(%RESP%)
  3408. if (%ARESP%)=(INVALID) then goto (invfn)
  3409. if (%ARESP%)=(No) then goto (nothere)
  3410. if (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  3411. selFarea(%ARESP%)
  3412. linefeed(1)
  3413. view(%NOPERC%%FILPATH%%RESP%)
  3414. selfarea(/:LASTDOWN/)
  3415. enter
  3416. Return
  3417.         *invfn
  3418. Display(Display\INVALID)
  3419. flushout
  3420. selfarea(/:LASTDOWN/)
  3421. Enter
  3422. goto (fname)
  3423.         *NotHere
  3424. Display(Display\notfnd)
  3425. goto (fname)
  3426.         *notenuf
  3427. Display (Display\fbadsec)
  3428. selfarea(/:LASTDOWN/)
  3429. return
  3430. *ret
  3431. linefeed(1)
  3432. return
  3433. KILLMESSCTLsetequal(g=1)
  3434. enufsec(100)
  3435. iftrue(goto (stkill))
  3436. setequal(a=%NAME%)
  3437. upcase(a)
  3438. setequal(i=%MSGFROM%)
  3439. upcase(i)
  3440. setequal(j=%MSGTO%)
  3441. upcase(j)
  3442. notif (&i)=(&a) then notif (&j)=(&a) then setequal(g=0)
  3443. if (%MSGNAMEC%)=(Yes) then setequal(g=0)
  3444. if (&g)=(0) then return
  3445. *stkill
  3446. ;Say(&CR&&15&Are you sure you want to kill this message? (&12&Y&15&/&12&N&15&)&14&*)
  3447. ;Back(4)
  3448. ;YesNoAsk(*)
  3449. ;NotIf(%RESP%)=(Yes) then Return
  3450. msgkill (/:LASTMSG/,%var%y)
  3451. say(&12&&CR&Message #%var%y has been deleted!&CR&)
  3452. return
  3453. NREADCTL▓setequal(g=0)
  3454. cmpval(%var%f,%RESP%)
  3455. iftrue(setequal(g=1))
  3456. iftrue(return)
  3457. cmpval(%var%n,%RESP%)
  3458. ifnottrue(setequal(/resp=%var%n))
  3459. setequal(w=1)
  3460. setequal(y=%RESP%)
  3461. return
  3462. CHANGECTLHif (%nv%wipmode%)=(1) then loadmem(control\macros\change-w.ctl)
  3463. delimit( ,;)
  3464. ;---PowerStak Block 1
  3465. len(%nv%queue%)
  3466. notif (%aresp%) = (0) then 
  3467.         setequal(/resp=%nv%queue%)       
  3468.         goto(stk) ;If something in the stack then...
  3469. endif
  3470. ;---PowerStak Block 1 End---
  3471.  
  3472. NotIf(%FAREA%)=(AREAS\FAREA/:LASTMSG/) then
  3473.   Display(display\nofareas)
  3474.   Enter
  3475.  endif
  3476. display(%FAREA%)
  3477. If(/:EXPERT/)<>(Y) then Say(&CR&&12&Please note that other conferences may have different file areas.)
  3478. *bkh
  3479. CAsk(%CRON%&CR&&15&Which file area would you like? (ENTER=Quit)&12&: &14&*)
  3480. ;---PowerStak Block 2
  3481.  
  3482. *stk
  3483. setequal(a=%resp%)
  3484. DEQUEUE(a)
  3485. setequal(/nvqueue=%var%a)
  3486. setequal(/resp=%aresp%)
  3487. ;---PowerStak Block 2 End---
  3488. If (%RESP%)=(<CR>) then Return
  3489. Get(%RESP%,1,1)
  3490. If(%ARESP%)=(?) then Goto(OlHelp)
  3491. If(%ARESP%)=(/) then Goto(Anywhere)
  3492. MenuEqual(/RESP=%RESP%)
  3493.  
  3494. *sa
  3495.  number(%resp%)
  3496.  ifnottrue(return)
  3497.  CmpValo(%MAXFAREA%,%RESP%)
  3498.  IfTrue(goto (bds))
  3499.  SelFarea(%RESP%)
  3500.  CmpVal(%sec%,%FILSEC%)
  3501.  IfTrue(goto (nofs))
  3502.  SetEqual(/LASTDOWN=%RESP%)
  3503.  if (%CD%)=(Yes) then display(%CDPath%/:lastdown/\welc)
  3504.  if (%CD%)=(No) then Display(%FILPATH%welc)
  3505.  Say(&CR&&11&Area #%RESP%: &15&%FILNAME% &11&is now selected!&CR&)
  3506.  log(--,Changed to %FILNAME% file area)
  3507.  Say(&15&Would you like to list this area? (&12&Y&15&/&12&N&15&)&14&*)
  3508.  Back(4)
  3509.  YesNoAsk()
  3510.  If (%RESP%)=(Yes) Then loadsub(control\macros\flist.ctl)
  3511. Return
  3512. *bds
  3513. loadsub(control\macros\badsel.ctl)
  3514. ;Clear Stack on Error!
  3515. ;---PowerStak Block 3
  3516. setequal(/nvqueue=)
  3517. ;---PowerStak Block 3 End
  3518. Return
  3519. *nofs
  3520. display(display\NOFSEC)
  3521. selfarea(/:lastdown/)
  3522. return
  3523.  
  3524. *OlHelp
  3525. SetNv(AtPrompt=Yes)
  3526. SetNv(Helpoption=19)
  3527. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3528. Goto(Bkh)
  3529.  
  3530. *Anywhere
  3531. Len(%RESP%)
  3532. If(%ARESP%)<(2) then Goto(Bsel)
  3533. LoadSub(control\macros\anywhere.ctl)
  3534. Goto(Bkh)
  3535. FREADWIPCTLw*thetop
  3536.  
  3537. jump (dispscr)
  3538.  
  3539. *initBox
  3540. setequal(c=14~listbox~1000~%nv%high%~)
  3541. jump (wipc)
  3542.  
  3543. *GetResp0
  3544. if (%nv%fromsub%)=(1) then
  3545.   setnv(fromsub=)
  3546.   goto (userfind)
  3547. endif
  3548. setequal(c=0A~)
  3549. jump (wipc)
  3550.  
  3551. jump (getInput)
  3552. writeln(Response from user: "%resp%")
  3553. if (%nv%wiprestreq%)=(1) then goto (thetop)
  3554. if (%resp%)=(View) then goto (userfind)
  3555. if (%resp%)=(begin) then goto (userfind)
  3556. if (%resp%)=(Exit) then goto (ret0)
  3557. if (%resp%)=(quit) then goto (ret0)
  3558. setequal(b=%resp%)
  3559. find(&b,,)
  3560. if (%aresp%)<=(1) then goto (NotListC)
  3561. addvar(%aresp%+-1=e)
  3562. addvar(%aresp%+1=f)
  3563. get(&b,1,%var%e)
  3564. setnv(wipc=%aresp%)
  3565. get(&b,%var%f,1000)
  3566. setequal(b=%aresp%)
  3567. if (%var%b)=(-1) then goto (s2)
  3568. goto (getresp0)
  3569. *NotListC
  3570. find(&b,;)
  3571. if (%aresp%)<=(1) then goto (NoCmnd)
  3572. addvar(%aresp%+-1=e)
  3573. addvar(%aresp%+1=f)
  3574. get(&b,1,%var%e)
  3575. SetNv(WipC=%aresp%)
  3576. setnv(cText=)
  3577. len(%var%b)
  3578. if (%var%f)<=(%aresp%) then
  3579. get(&b,%var%f,1000)
  3580. SetNv(Ctext=%aresp%)
  3581. endif
  3582. if (%nv%wipc%)=(filename) then setNv(key=%nv%Ctext%)
  3583. *NoCmnd
  3584. setnv(wtxt=)
  3585. goto (getResp0)
  3586.  
  3587.  
  3588. *UserFind
  3589. setequal(c=14~listbox~1000~%nv%high%~)
  3590. jump (wipc)
  3591. SetActivity (Read Textfile)
  3592.  
  3593. seekfall(%nv%key%)
  3594. if (%ARESP%)=(INVALID) then goto (invfn)
  3595. if (%ARESP%)=(No) then goto (nothere)
  3596. if (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  3597. selFarea(%ARESP%)
  3598.  
  3599. inpopen(%filpath%%nv%key%,4)
  3600.  
  3601. *Main
  3602.  *Stk
  3603.  if (%nv%key%)=() then goto (notext)
  3604.  log (--,Viewing text file:%nv%key%)
  3605.  SetEqual(n=1) 
  3606.  ;user number to search from
  3607.  *s2
  3608.  SetEqual(y=0)
  3609.  
  3610. *Searching
  3611.  fendif(nomore)
  3612.  inpread
  3613.  Inc(y)
  3614.  if (%aresp%)=() then setequal(/aresp= )
  3615.  writeln(%aresp%)
  3616.  setequal(c=07~listbox~%aresp%~)
  3617.  jump (wipc)
  3618.  
  3619.  if (%var%y)=>(%nv%high%) then goto (donef)
  3620.  
  3621.  Goto(Searching)
  3622.  
  3623. *NoMore
  3624. ; writeln(No more matches to the text you specified could be found.)
  3625. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  3626. ; jump (okbox0)
  3627.  goto (getresp0)
  3628.  
  3629. *GCHAR
  3630. COMPRINT(%NV%TEXT%)
  3631. SETEQUAL(A=0)
  3632. DO
  3633. COMKEY
  3634. ASCII
  3635. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  3636. INC(A)
  3637. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  3638. IF(%ARESP%)=(&B) THEN RET
  3639. IF(&A)>(50) THEN RET
  3640. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  3641. DELAY18TH(2)
  3642. LOOP
  3643. *WIPC
  3644. LOCALKEY(1)
  3645. IFNOTTRUE(GOTO(NOLKEY))
  3646. SYSKEYCHECK
  3647. SETEQUAL(/RESP=)
  3648. SETEQUAL(/RESP=)
  3649. *NOLKEY
  3650. CCARRIER
  3651. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  3652. CHECKSUM(%VAR%C)
  3653. SETEQUAL(B=6)
  3654. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  3655. SETNV(PBACK=)
  3656. JUMP(GCHAR)
  3657. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  3658. setequal(c=%aresp%)
  3659. SETEQUAL(/IBUFF=%NV%PBACK%)
  3660. LEN(%NV%PBACK%)
  3661. SETEQUAL(/IBUFF0=%ARESP%)
  3662. SETEQUAL(/ARESP=%VAR%C)
  3663. RET
  3664. *NOC0
  3665. log(<<,Carrier lost.)
  3666. quitbbs
  3667.  
  3668. *wipask
  3669. loadsub(control\wipask.ctl)
  3670. ret
  3671.  
  3672. *getinput
  3673. writeln(Waiting for input from remote user.)
  3674. setequal(y=180)
  3675. jump (wipask)
  3676. if (%aresp%)<>(24) then ret
  3677. loadsub(control\wipask.ctl,goto(twarn))
  3678. setequal(y=60)
  3679. jump (wipask)
  3680. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  3681. ret
  3682.  
  3683. *donef
  3684. write(Updating list box on user's screen ... )
  3685. setequal(c=07~listbox~-1~)
  3686. jump (wipc)
  3687. setequal(c=0F~listbox~Read Text File~1~1~2~)
  3688. jump (wipc)
  3689. setequal(c=0F~RecCount~%nv%high%~1~0~1~)
  3690. jump (wipc)
  3691. setequal(c=0F~Exit~Exit~1~1~3~)
  3692. jump (wipc)
  3693. setequal(c=0F~Scrl_UP~~1~1~4~)
  3694. jump (wipc)
  3695. setequal(c=0F~Scrl_Dn~~1~1~5~)
  3696. jump (wipc)
  3697. setequal(c=0F~Page_Up~~1~1~6~)
  3698. jump (wipc)
  3699. setequal(c=0F~Page_Dn~~1~1~7~)
  3700. jump (wipc)
  3701. setequal(c=0A~)
  3702. jump (wipc)
  3703. writeln(Done!)
  3704. goto(getresp0)
  3705.  
  3706. *okbox0
  3707. Jump (wipc)
  3708. comlineinput(180,l)
  3709. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  3710. if (%resp%)=() then goto (okbox)
  3711. ret
  3712.  
  3713. *notext
  3714. writeln(No text was specified.  Enter the filename to view and try again...)
  3715. setequal(c=13~No text was specified.  Please enter the filename to view and try again or click "Exit" to exit.~No Text Specified~1~)
  3716. jump (okbox0)
  3717. goto (getresp0)
  3718.  
  3719. *ret0
  3720. selfarea(/:LASTDOWN/)
  3721. return
  3722.  
  3723.         *invfn
  3724. flushout
  3725. setequal(c=13~Invalid filename format.  Filename must consist of eight characters followed by a period followed by a three character extension.~Invalid Filename~1~)
  3726. jump (okbox0)
  3727. selfarea(/:LASTDOWN/)
  3728. setnv(filename=%nv%ctext%)
  3729. goto (getresp0)
  3730.  
  3731.         *NotHere
  3732. setequal(c=13~The file could not be found.  Please check the spelling and try again.~File Not Found~1~)
  3733. jump (okbox0)
  3734. selfarea(/:lastdown/)
  3735. setnv(filename=%nv%ctext%)
  3736. goto (getresp0)
  3737.         *notenuf
  3738. setequal(c=13~Your security level is not high enough to access that file.~Access Denied~1~)
  3739. jump (okbox0)
  3740. selfarea(/:LASTDOWN/)
  3741. setnv(filename=%nv%ctext%)
  3742. goto (getresp0)
  3743.  
  3744. *ret
  3745. linefeed(1)
  3746. setnv(high=)
  3747. goto (ret0)
  3748.  
  3749. *dispscr
  3750. setnv(high=21)
  3751. setnv(NoInfo=1)
  3752. loadsub(control\ewipscr.ctl,setnv(wipf=readfile))
  3753. ret
  3754. AVAILCTL°*GetAvail
  3755. Say(&15&Would you like to be available to other users for multinode chat? (&12&Y&15&/&12&N&15&)*)
  3756. Back(4)
  3757. YesNoAsk(&14&*)
  3758. SetEqual(/DEFAVAIL=%RESP%)
  3759. McAvail(%RESP%)
  3760. Log(--,Changed Default Available for Chat to %RESP%)
  3761. Return
  3762.  
  3763. *OlHelp
  3764. SetNv(AtPrompt=Yes)
  3765. SetNv(Helpoption=126)  ; available for chat help
  3766. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3767. Goto(GetAvail)
  3768.  
  3769. *Anywhere
  3770. Len(%RESP%)
  3771. If(%ARESP%)<(2) then Goto(Bsel)
  3772. LoadSub(control\macros\anywhere.ctl)
  3773. Goto(GetAvail)
  3774. SINCECTL╠setequal(g=0)
  3775. msghigh(0)
  3776. setequal(y=%ARESP%)
  3777. cmpval(%var%f,%var%y)
  3778. iftrue (setequal(g=1))
  3779. iftrue (return)
  3780. cmpval(%var%n,%VAR%Y)
  3781. ifnottrue(setequal(y=%var%n))
  3782. setequal(w=1)
  3783. setequal(s=0)
  3784. return
  3785. CONAMECTL╩*GetCoName
  3786. ;say(What do you wish to change your organization's name to?&12&: &15&*)
  3787. Say(&15&      What company do you work for?&12&: (*)
  3788. SetEqual(a=/:COMPANY/)
  3789. SetLen(a=30)
  3790. rtrim(a)
  3791. Spaces(30)
  3792. Say()&14&*)
  3793. Back(31)
  3794. SetFill(%VAR%A)
  3795. ask(%LEN%30%%CRON%*)
  3796. If(%RESP%)=(<CR>) then Return
  3797. Get(%RESP%,1,1)
  3798. If(%ARESP%)=(?) then Goto(OLhelp)
  3799. If(%ARESP%)=(/) then Goto(Anywhere)
  3800. SetEqual(/COMPANY=%RESP%)
  3801. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed From (Company))
  3802. return
  3803.  
  3804. *OlHelp
  3805. SetNv(AtPrompt=Yes)
  3806. SetNv(Helpoption=125)
  3807. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3808. Goto(GetCoName)
  3809.  
  3810. *Anywhere
  3811. Len(%RESP%)
  3812. If(%ARESP%)<(2) then Goto(Bsel)
  3813. LoadSub(control\macros\anywhere.ctl)
  3814. Goto(GetCoName)
  3815. CHGMHSCTLW*GetName
  3816. say(&15&What do you wish your new MHS Gateway identity to be?&12&: (        )&14&*)
  3817. back(9)
  3818. cask(%CRON%%LEN%8%*)
  3819. If(%RESP%)=(<CR>) then Return
  3820. Get(%RESP%,1,1)
  3821. If(%ARESP%)=(?) then Goto(OlHelp)
  3822. If(%ARESP%)=(/) then Goto(Anywhere)
  3823. Len(%RESP%)
  3824. If(%ARESP%)<(8) Goto(Invalid)
  3825. SetEqual(/MHSNAME=%RESP%)
  3826. Log(--,Changed From (MHS Name))
  3827. return
  3828.  
  3829. *Invalid
  3830. Say(&CR&&12&That is an invalid MHS Gateway name. Please try again...&CR&)
  3831. Goto(GetName)
  3832.  
  3833. *OlHelp
  3834. SetNv(AtPrompt=Yes)
  3835. SetNv(Helpoption=142)
  3836. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  3837. Goto(GetName)
  3838.  
  3839. *Anywhere
  3840. Len(%RESP%)
  3841. If(%ARESP%)<(2) then Goto(Bsel)
  3842. LoadSub(control\macros\anywhere.ctl)
  3843. Goto(GetName)
  3844.  
  3845.         *Bsel
  3846. LoadSub(control\macros\badsel.ctl)
  3847. ;Clear Stack on Error!
  3848. ;---PowerStak Block 3
  3849. setequal(/nvqueue=)
  3850. ;---PowerStak Block 3 End
  3851. Goto(GetName)
  3852. ZIPPBCTLk  get (/:memo/,1,1)
  3853.  notif (%aresp%)=(#) then return
  3854.  mkdir(%pbtemp%zvtemp)
  3855.  kill(%pbtemp%zvtemp\*.*)
  3856.  get (/:memo/,2,1)
  3857.  setequal(a=%aresp%)
  3858.  say(&CR&&13&This version is dated: &11&*)
  3859.  if (&a)=(0) then fdate(\tb\beta.exe)
  3860.  if (&a)=(3) then fdate(\tb\beta3.exe)
  3861.  if (&a)=(9) then fdate(\tb\beta9.exe)
  3862.  say(%Aresp%&CR&)
  3863.  say(&3&Would you like to download this version? &9&[   ]&14&*)
  3864.  back(4)
  3865.  yesnoask(*)
  3866.  if (%resp%)=(No) then return
  3867.  say(&CR&&14&Adding your serial number ...)
  3868.  if (&a)=(0) then fcopy(\tb\beta.exe,%pbtemp%zvtemp\pboard.exe)
  3869.  if (&a)=(3) then fcopy(\tb\beta3.exe,%pbtemp%zvtemp\pboard.exe)
  3870.  if (&a)=(9) then fcopy(\tb\beta9.exe,%pbtemp%zvtemp\pboard.exe)
  3871.  seek(%pbtemp%zvtemp\pboard.exe)
  3872.  ifnottrue(return)
  3873.  get(/:memo/,3,20)
  3874.  exec(\serial\serial.exe %var%a %pbtemp%zvtemp\pboard.exe #%aresp%│)
  3875.  say(&CR&&11&Zipping Powerboard for you ...)
  3876.  say(\dos\pkz2.exe -ex %pbtemp%zvtemp\%date% %pbtemp%zvtemp\pboard.exe)
  3877.  exec(\dos\pkzip.exe -ex %pbtemp%zvtemp\%date%.ZIP %pbtemp%zvtemp\pboard.exe│)
  3878.  SetEqual(d=%date%.zip)
  3879.  say(d:%var%d!)
  3880.  Seek(%pbtemp%zvtemp\%date%.zip)
  3881.  say(Seek, ARESP:%ARESP%!)
  3882.  if (%aresp%)=(No) then return
  3883.  
  3884. *PICKP
  3885.  say( ->)
  3886. ; Display (Display\DN-PROTS)
  3887.  say( -<)
  3888.  MenuAsk (%MIN%1%&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  3889.  Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  3890.  NotIf (%ARESP%)=(0) Then return
  3891.  if (%resp%)=(Q) then return
  3892.  SetEqual(b=%RESP%)
  3893.  Seek(protocol\%var%b-VD.BT)    ;check to see If protocol exists..
  3894.  IfNotTrue(Goto (pickp))
  3895.  Len(%var%b)
  3896.  NotIf (%ARESP%)=(1) then goto (nobat)
  3897.  Say(&CR&&3&       Would you like to download this file? &9&[   ]&14&*)
  3898.  Back(4)
  3899.  YesNoAsk(*)
  3900.  If (%RESP%)=(No) Then return
  3901.  say(&3&Would you like us to log you off afterwards? &9&[   ]&14&*)
  3902. back(4)
  3903. yesnoask(*)
  3904. SetEqual(m=%RESP%)
  3905.  Say(&CR&&11&We're sending "%DATE%.ZIP".  Please get ready to receive it now.)
  3906.  If (%LOCAL%)=(TRUE) Then return
  3907.  FixFile(protocol\%var%b-vd.bt,protocol\%var%b-vd.bat)
  3908.  InitClock
  3909.  Exec(protocol\%var%b-vd.BAT│)
  3910.  Kill(protocol\%var%b-vd.bat)
  3911.  If (%LOCAL%)=(FALSE) Then toglocal
  3912.  NotIf (%ARESP%)=(0) Then Goto (nsc)
  3913.  XferTime
  3914.  SetEqual(e=%ARESP%)
  3915.  Size(%pbtemp%zvtemp\%var%d)
  3916.  MultVar(%XMIN%*60=o)
  3917.  DivVar(%ARESP%/%var%o=g)         ;calculate CPS rate
  3918.  CnvtK(%ARESP%)
  3919.  AddVar(%ARESP%+/:KDOWN/=o)
  3920.  SetEqual(/KDOWN=%var%o)
  3921.  Say(%BEEP%*)
  3922.  Log(--,%var%d Downloaded from Zip:%var%e.)
  3923.  Log(--,Rate: %var%g CPS)
  3924.  AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  3925.  SetEqual(a=/:DOWNLOADS/)
  3926.  inc(a)
  3927.  SetEqual(/DOWNLOADS=%var%a)
  3928.  If (%LOCAL%)=(TRUE) Then toglocal
  3929.  Display (Display\SUCCESS)
  3930.  kill(%pbtemp%zvtemp\*.*)
  3931.  if (&m)=(Yes) then loadsub(control\autooff.ctl)
  3932.  Enter
  3933.  return
  3934.  
  3935. *NOBAT
  3936.  Say(&CR&&15&No batch protocols allowed for transfering this file.&CR&)
  3937.  Goto (pickp)
  3938.  
  3939. *nsc
  3940. toglocal
  3941. return
  3942. EVENTCTLësay(&14& There is a system event coming up in /:left/ minutes.  Please try)
  3943. say( this function at a later time.)
  3944. say()
  3945. enter
  3946. return
  3947. MVBAT)@echo off
  3948. move \pb\control\macros\%1 .
  3949. CCLINECTL
  3950. *AddCCLine
  3951. ;Kill(cc1.%NODE%)
  3952. Kill(%pbtemp%ccline.%NODE%)
  3953. ;Capture(cc1.%NODE%,%MAXLINE%)
  3954. Zap(%pbtemp%ccline1.%NODE%, )
  3955. ;AppendTo(ccline1.%NODE%, )  ; don't put extra blank line
  3956. SetEqual(/nvq=%VAR%Q)
  3957. SetEqual(/nvi=%VAR%i)
  3958. SetEqual(q=1)
  3959. Goto(TheLoop)
  3960. *Cont
  3961. If(%NV%CCING%)=(1) then Return
  3962. SetEqual(/nvccing=)
  3963. loadexec(command.com,/c copy %pbtemp%cc1.%NODE%+%pbtemp%ccline1.%NODE% %pbtemp%ccline.%NODE% >nul)
  3964. inittxt
  3965. import(%pbtemp%ccline.%NODE%,,1,100)
  3966. Return
  3967.  
  3968. *TheLoop
  3969. SetEqual(i=nv%cc%VAR%Q%)
  3970. Prc(%%VAR%I)
  3971. ;MenuEqual(/resp=%NV%ADDRESSEE%)
  3972. If(%ARESP%)=(%NV%ADDRESSEE%) then Goto(SkipAndInc)
  3973. NicEqual(/resp=%ARESP%)
  3974. If(&q)=(1) then AppendTo(%pbtemp%ccline1.%NODE%,CC: %RESP%)
  3975. If(&q)=(2) then If(%NV%SKIP%)=(1) then AppendTo(%pbtemp%ccline1.%NODE%,CC: %RESP%)
  3976. If(&q)=(2) then NotIf(%NV%SKIP%)=(1) then NotIf(%RESP%)=() then AppendTo(%pbtemp%ccline1.%NODE%,    %RESP%)
  3977. If(&q)>(2) then NotIf(%RESP%)=() then AppendTo(%pbtemp%ccline1.%NODE%,    %RESP%)
  3978. SetEqual(/nvskip=0)
  3979. *IncIt
  3980. Inc(q)
  3981. If(&q)<=(%NV%CCs%) then Goto(TheLoop)
  3982. SetEqual(q=%NV%Q%)
  3983. SetEqual(i=%NV%I%)
  3984. SetEqual(/nvq=)
  3985. SetEqual(/nvi=)
  3986. SetEqual(/nvskip=)
  3987. Goto(cont)
  3988.  
  3989. *SkipAndInc
  3990. If(%NV%CCING%)=(1) then
  3991.   SetEqual(/nvskip=1)
  3992.   ;if this is your cc msg, skip your name
  3993.   Goto(incit)
  3994.  endif
  3995. CHECKKEYCTLï;CHECKKEY.CTL -- gets a key from the user and checks if it is an arrow key. 
  3996.  MenuKey(%CRON%)
  3997.  ASCII
  3998.  If(%ARESP%)=(27) then NotIf(%BAUD%)=(LOCAL) then goto(akey)
  3999.  If(%ARESP%)=(27) then
  4000.   Get(%RESP%,2,1)
  4001.   If(%ARESP%)=([) then
  4002.    Get(%RESP%,3,1)
  4003.    If(%ARESP%)=(D) then SetEqual(/RESP=-)
  4004.    ;left arrow
  4005.    If(%ARESP%)=(C) then SetEqual(/RESP=+)
  4006.    ;right arrow
  4007.    If(%ARESP%)=(A) then SetEqual(/RESP=8)
  4008.    ;up arrow
  4009.    If(%ARESP%)=(B) then SetEqual(/RESP=2)
  4010.    ;down arrow
  4011.    endif
  4012.   endif
  4013.   *MoreChecking
  4014.   If(%ARESP%)=(P) then SetEqual(/RESP=2)
  4015.   ;down arrow
  4016.   If(%ARESP%)=(H) then SetEqual(/RESP=8)
  4017.   ;up arrow
  4018.   If(%ARESP%)=(K) then SetEqual(/RESP=+)
  4019.   ;left arrow
  4020.   If(%ARESP%)=(M) then SetEqual(/RESP=-)
  4021.   ;right arrow
  4022.   endif
  4023.  If(%ARESP%)=(0) then
  4024.   Get(%RESP%,2,1)
  4025.   If(%ARESP%)=(P) then SetEqual(/RESP=2)
  4026.   ;down arrow
  4027.   If(%ARESP%)=(H) then SetEqual(/RESP=8)
  4028.   ;up arrow
  4029.   If(%ARESP%)=(K) then SetEqual(/RESP=+)
  4030.   ;left arrow
  4031.   If(%ARESP%)=(M) then SetEqual(/RESP=-)
  4032.   ;right arrow
  4033.   endif
  4034. Return
  4035.  
  4036. *AKEY
  4037.   ;remote arrow key detection routine
  4038.   MenuKey(%CRON%)
  4039.   If(%RESP%)=([) then
  4040.    MenuKey(%CRON%)
  4041.    If(%RESP%)=(D) then SetEqual(/RESP=-)
  4042.    ;left arrow
  4043.    If(%RESP%)=(C) then SetEqual(/RESP=+)
  4044.    ;right arrow
  4045.    If(%RESP%)=(A) then SetEqual(/RESP=8)
  4046.    ;up arrow
  4047.    If(%RESP%)=(B) then SetEqual(/RESP=2)
  4048.    ;down arrow
  4049.    endif
  4050.   Goto(MoreChecking)
  4051. DBROCTL"display(display\broch)
  4052. menuask(%NOCR%%LEN%1%%CRON%&CR&&3&Protocol to use for the transfer? &11&(1-3)&14& *)
  4053. if (%RESP%)=(<CR>) then return
  4054. if (%RESP%)=(Q) then return
  4055. setequal(z=)
  4056. if (%resp%)=(1) then setequal(z=z)
  4057. if (%resp%)=(2) then setequal(z=y)
  4058. if (%resp%)=(3) then setequal(z=x)
  4059. if (%resp%)=(Z) then setequal(z=z)
  4060. if (%resp%)=(Y) then setequal(z=y)
  4061. if (%resp%)=(X) then setequal(z=x)
  4062. if (%var%z)=() then return
  4063.  
  4064. jump (clr)
  4065. setequal(u=%var%h)
  4066. jump (alo)
  4067. eline(12)
  4068.  
  4069. selfarea(10)
  4070. jump(clr)
  4071. setequal(d=BROCHURE.ZIP)
  4072. setequal(q= &7&%var%d&11&)
  4073. jump (doprot)
  4074.  
  4075. notif (&t)=(0) then return
  4076. if (&y)=(Yes) then log(--,Auto-Log Off...)
  4077. if (&y)=(Yes) then loadmem(control\autooff.ctl)
  4078. return
  4079. *clr
  4080. notif (%graphics%)=(ANSI) then goto (endif1)
  4081.  ansigoto(1,16)
  4082.  eline(79)
  4083.  ansigoto(1,17)
  4084.  eline(79)
  4085.  ansigoto(1,18)
  4086.  eline(79)
  4087.  ansigoto(1,19)
  4088.  eline(79)
  4089.  ansigoto(1,20)
  4090.  eline(79)
  4091.  ansigoto(1,21)
  4092.  eline(79)
  4093.  ansigoto(1,16)
  4094.  ret
  4095. *endif1
  4096. eline(79)
  4097. ret
  4098.  
  4099. *doprot
  4100. eline(79)
  4101. say(&11&Now Sending%var%q.  Please get ready to receive now.*)
  4102. setequal(q=)
  4103. fixfile(protocol\%var%z-d.bt,protocol\%var%z-d.bat)
  4104. log(--,Downloading PB Brochure:%var%z)
  4105. exec(protocol\%var%z-d│)
  4106. setequal(t=%aresp%)
  4107. kill(protocol\%var%z-d.bat)
  4108. log(--,Exit Code:%aresp%)
  4109. jump (clr)
  4110. ret
  4111.  
  4112. *ques
  4113. say(%var%f)
  4114. *gk
  4115. menukey
  4116. setequal(h=)
  4117. if (%resp%)=(Y) then setequal(h=Yes)
  4118. if (%resp%)=(N) then setequal(h=No)
  4119. if (&h)=() then goto (gk)
  4120. ret
  4121.  
  4122. *alo
  4123. jump (clr)
  4124. setequal(f=&3&Log off after download is completed? *)
  4125. jump (ques)
  4126. setequal(y=%var%h)
  4127. ret
  4128. ATTASKCTLSay(&15&Would you like the BBS to skip asking you if you want to attach a file every)
  4129. Say(time you save a message? (&12&Y&15&/&12&N&15&)&14&*)
  4130. Back(4)
  4131. YesNoAsk(*)
  4132. SetEqual(/flag1=%RESP%)
  4133. Log(--,Changed Default Bypass Attached File to %RESP%)
  4134. return
  4135. EXECTL╤
  4136. enufsec(50)
  4137. ifnottrue(return)
  4138. get (/:memo/,2,1)
  4139. setequal(a=%ARESP%)
  4140. len(/:memo3/)
  4141. notif (%aresp%)=(0) then setequal(a=/:memo3/)
  4142.  
  4143. say(Moving .EXE file ...*)
  4144.  
  4145. fcopy(\pbcopy\temp2\pb%VAR%A.EXE,\pbcopy\temp\temp\temp\pboard.exe)
  4146. notif (%ARESP%)=(0) then return
  4147.  
  4148. say( Done!&CR&Adding your serial number ...*)
  4149. get (/:memo/,3,10)
  4150. setequal(b=%ARESP%)
  4151. exec(\serial\serial.exe %VAR%A \pbcopy\temp\temp\temp\pboard.exe #%VAR%B /125A)
  4152.  
  4153. ;say( Done!&CR&Adding .EXE to batch (may take a while) ...*)
  4154. ;exec(\pbcopy\pc.exe \pbcopy\temp\temp\BBS2 \PBCOPY\temp\temp\temp\)
  4155. ;say( Done!&CR&Compressing batch ...*)
  4156. ;exec(\DOS\LHA.EXE U \PBCOPY\TEMP\MAIN2.LZH \PBCOPY\TEMP\TEMP\BBS2)
  4157. say( Done!&CR&Zipping file ...*)
  4158. exec(\DOS\PKZIP.EXE -eX \PBCOPY\EXE-%NODE%.ZIP \PBCOPY\TEMP\TEMP\TEMP\PBOARD.EXE)
  4159. say( Done!&CR&Sending EXE-%NODE%.ZIP via ZMODEM ...)
  4160. say()
  4161. exec(\BBS\DSZ.COM port %PORT% speed %LBAUD% sz -m \PBCOPY\EXE-%NODE%.ZIP)
  4162. log(--,Downloaded PB EXE file)
  4163. return
  4164. UPKTCTLφloadsub(control\exitwip.ctl)
  4165. freespace(%CDRIVE%:)
  4166. if (%ARESP%)<(%MINSPACE%) then loadmem (control\macros\nospace.ctl)
  4167. InitTxt
  4168. setactivity(Uploading Mail)
  4169. setequal(m=0)
  4170. setequal(h=0)
  4171. setequal(/nvID=NUIQ)
  4172. if (%qwkid%)<>() then setnv(ID=%qwkid%)
  4173. setequal(/nvLOCALDIR=c:\King)
  4174. if (%qwklocaldir%)<>() then setnv(localdir=%qwklocaldir%)
  4175. mkdir(%PBTEMP%QWKWORK)
  4176. if (%LOCAL%)=(TRUE) then
  4177.    fcopy(%NV%LOCALDIR%\%NV%ID%.REP,%PBTEMP%QWKWORK\%NV%ID%.REP)
  4178.    if (%ARESP%)<>(0) then
  4179.         say(&CR&&12&.REP reply packet not found.&7&&CR&)
  4180.         enter
  4181.         goto (doret)
  4182.         endif
  4183.    kill(%NV%LOCALDIR%\%NV%ID%.REP)
  4184.    goto(local)
  4185.    endif
  4186. KILL(%PBTEMP%QWKWORK\*.*)
  4187. zap(%PBTEMP%qwkconf)
  4188.  
  4189. *selp
  4190. display(display\qwkprot)
  4191.  
  4192. menuask(%MIN%1%&3&Protocol to use? &11&(Q=Quit)&12&: &15&*)
  4193. if (%RESP%)=(Q) then goto(gb)
  4194. find(%RESP%,\)
  4195. iftrue(goto(gb))
  4196. len(%RESP%)
  4197. if (%ARESP%)<>(1) then goto (selp)
  4198. setequal(a=%resp%)
  4199.  
  4200. say(&CR&&11&Ready to receive %NV%ID%.REP.  Please send the file now.&CR&)
  4201.  
  4202. fixfile(protocol\%resp%-qu.BT,%PBTEMP%qwku.BAT)
  4203. exec(%PBTEMP%qwku.BAT│)
  4204. eline(79)
  4205. if (%ARESP%)<>(0) then goto (gb)
  4206.  
  4207. *local
  4208. say(&CR&&14&UNZIPPING .REP Mail Packet, please wait . . . *)
  4209. exec(pkunzip -o %PBTEMP%qwkwork\%NV%ID%.REP %PBTEMP%qwkwork)
  4210. say(Done!&CR&)
  4211.  
  4212. say(&14&Press &7&CTRL-K &14&to stop tossing.)
  4213. say(&CR&&11&Tossing mail, please wait . . . *)
  4214. setequal(x=129)
  4215. size(%PBTEMP%qwkwork\%NV%ID%.msg)
  4216. setequal(z=%aresp%)
  4217.  
  4218. *st
  4219. localkey(1)
  4220. ifnottrue(goto (psa))
  4221. If (%ARESP%)=( ) Then Goto (done)
  4222. *psa
  4223. ;ifkey( )
  4224. ;iftrue(goto(done))
  4225.  
  4226. if (%var%x)=>(%var%z) then goto(done)
  4227. kill(%pbtemp%qwkwork\extra.txt)
  4228. kill(%pbtemp%qwkwork\excess.txt)
  4229. fread(%PBTEMP%qwkwork\%NV%ID%.msg,%var%x,128,w)
  4230. addvar(%var%x+128=x)
  4231. get(&w,1,1)
  4232. if (%aresp%)=( ) then setequal(K=N)
  4233. if (%ARESP%)=(-) then setequal(k=N)
  4234. if (%aresp%)=(*) then setequal(k=Y)
  4235. if (%aresp%)=(~) then setequal(k=Y)
  4236. if (%aresp%)=(`) then setequal(k=Y)
  4237. get(&w,47,25)
  4238. setequal(a=%ARESP%)
  4239. setequal(b=%name%)
  4240. upcase(b)
  4241. ;find(&a,%var%b)
  4242. ;if (%ARESP%)=(0) then goto(wrongp)
  4243. get(&w,22,25)
  4244. setequal(a=%aresp%)
  4245. get(&w,47,25)
  4246. setnv(msgfrom=%aresp%)
  4247. get(&w,72,25)
  4248. setequal(b=%aresp%)
  4249. rtrim(b)
  4250. get(&w,109,8)
  4251. setequal(y=%aresp%)
  4252. get(&w,124,2)
  4253. cvi(%aresp%)
  4254. if (%NV%A%)<>(%ARESP%) then
  4255.         setequal(/nva=%aresp%)
  4256.         selarea(%aresp%)
  4257.         enufsec(%areasec%)
  4258.         ifnottrue(goto(wrongp))
  4259.         endif
  4260. get(&w,117,6)
  4261. setequal(q=%aresp%)
  4262. addvar(%var%q+-1=q)
  4263. setequal(h=0)
  4264. setequal(u=0)
  4265. setequal(t=1)
  4266.  
  4267. *bh
  4268. setequal(p=0)
  4269. fread(%PBTEMP%qwkwork\%NV%ID%.msg,%var%x,128,v)
  4270. if (%resp%)=(Q) then goto (doret)
  4271. addvar(%var%x+128=x)
  4272. *gv
  4273. find(&v,π)
  4274. setequal(e=%aresp%)
  4275. if (%aresp%)>(0) then setequal(p=-1)
  4276. if (%ARESP%)=(0) then
  4277.         setequal(h=0)
  4278.         goto (addmore)
  4279.         endif
  4280. if (%var%h)>(0) then goto(addmore)
  4281. *newline
  4282. setequal(h=0)
  4283. addvar(%var%e+-1=e)
  4284. get(&v,1,%var%e)
  4285. if (%var%t)<(198) then entertxt(%var%t,%aresp%)
  4286. if (%var%t)=(198) then zap(%pbtemp%qwkwork\extra.txt,%aresp%)
  4287. if (%var%t)=(198) then entertxt(%var%t, [ Continued in next message ])
  4288. if (%var%t)>(198) then if (%var%t)<(396) then appendto(%pbtemp%qwkwork\extra.txt,%aresp%)
  4289. if (%var%t)=(396) then appendto(%pbtemp%qwkwork\extra.txt, [ Continued in attachment ])
  4290. if (%var%t)=(396) then zap(%pbtemp%qwkwork\excess.txt,%aresp%)
  4291. if (%var%t)>(396) then appendto(%pbtemp%qwkwork\excess.txt,%aresp%)
  4292. inc(t)
  4293. addvar(%var%e+2=e)
  4294. get(&v,%var%e,128)
  4295. setequal(v=%aresp%)
  4296. goto (gv)
  4297. *nblock
  4298. inc(u)
  4299. if(&u)<(&q) then goto(bh)
  4300. addvar(%var%t+-1=t)
  4301. setmax(%var%t)
  4302. if (%var%t)>(197) then setmax(198)
  4303. rtrim(a)
  4304. ;qseek(%var%a)
  4305. seekuser(%var%a)
  4306. ;setequal(c=%aresp%)
  4307. setequal(c=%ndnumb%)
  4308. setequal(t=%MSGNET%)
  4309.  
  4310. inc(m)
  4311. mod(%var%m,5)
  4312. if (%aresp%)=(0) then
  4313.         say(%var%m*)
  4314.         len(%var%m)
  4315.         back(%aresp%)
  4316.         endif
  4317.  
  4318. if (%var%b)=(DROP) then goto (drop)
  4319. if (%var%b)=(RESET) then goto (reset)
  4320. get(&b,1,3)
  4321. if (%aresp%)=(ADD) then goto (add)
  4322.  
  4323. *DoWrite
  4324. setnv(b2=%var%b)
  4325. seek(%pbtemp%qwkwork\extra.txt)
  4326. iftrue(setnv(b2=%var%b 1/2))
  4327. writemsg(%nv%a%,%var%a,%NV%MSGFROM%,%nv%b2%,%var%c,%var%k,%var%y,%var%t,)
  4328. inittxt
  4329. seek(%pbtemp%qwkwork\extra.txt)
  4330. ifnottrue(goto(st))
  4331. import(%pbtemp%qwkwork\extra.txt,,1,200)
  4332. setnv(a2=%var%a)
  4333. setnv(b2=%var%b)
  4334. setnv(c2=%var%c)
  4335. setnv(attfname=excess.txt)
  4336. setequal(a=-1)
  4337. do
  4338. inc(a)
  4339. seek(%attpat%excess.%var%a)
  4340. iftrue(loop)
  4341. setnv(attext=%var%A)
  4342. seek(%pbtemp%qwkwork\excess.txt)
  4343. ifnottrue(goto(writem1))
  4344. fcopy(%pbtemp%qwkwork\excess.txt,%attpat%excess.%var%a)
  4345. goto(writem2)
  4346. *writem1
  4347. setnv(attfname=)
  4348. setnv(attext=)
  4349. *writem2
  4350. writemsg(%nv%a%,%nv%a2%,%nv%msgfrom%,%nv%b2% 2/2,%nv%c2%,%var%k,%var%y,%var%t,%nv%attfname%,%nv%attext%)
  4351. inittxt
  4352. ;If (&z)=(15) Then writemsg(/:LASTMSG/,%nv%addressee%,%nv%addresser%,%nv%subject%,%nv%tousernum%,%nv%msgpvt%,%nv%orignum%,%nv%net%,%NV%ATTFNAME%,%NV%ATTEXT%)
  4353. goto(st)
  4354.  
  4355. *addmore
  4356. inc(h)
  4357. if (%var%h)>(2) then
  4358.         setequal(h=0)
  4359.         goto(newline)
  4360.         endif
  4361. if (%var%h)>(1) then addvar(%var%t+-1=t)
  4362. ;if (%var%u)=(%var%q) then if (%var%p)=(0) then rtrim(v)
  4363. if (%var%h)<(2) then setequal(r=%var%v)
  4364. if (%var%h)>(1) then
  4365. addvar(%var%e+-1=e)
  4366. get(&v,1,%var%e)
  4367. setequal(r=%aresp%)
  4368. endif
  4369. showline(%var%t)
  4370. entertxt(%var%t,%aresp%%var%r)
  4371. inc(t)
  4372. if (%var%h)>(1) then
  4373.         addvar(%var%e+2=e)
  4374.         get(&v,%var%e,128)
  4375.         setequal(v=%aresp%)
  4376.         goto(gv)
  4377.         endif
  4378. goto(nblock)
  4379.  
  4380. *done
  4381. say(Done!&CR&)
  4382.  
  4383. *gb
  4384. setequal(/nva=)
  4385. setequal(/nvid=)
  4386. setequal(/nvlocaldir=)
  4387. kill(%PBTEMP%qwkwork\*.*)
  4388. selarea(/:lastmsg/)
  4389. goto (doret)
  4390.  
  4391. *wrongp
  4392. say(&12&&CR&&CR&Error -- This packet is not a reply packet for this BBS.&CR&)
  4393. secpause(2)
  4394. goto(gb)
  4395.  
  4396. *add
  4397.   len(%var%b)
  4398.   if (%aresp%)=(3) then goto (addproc)
  4399.   get(&b,5,100)
  4400.   number(%aresp%)
  4401.   ifnottrue(goto(doWrite))
  4402.   sethigh(%aresp%)
  4403.   *AddProc
  4404.   selectconf(%usern%,Y)
  4405.   inittxt
  4406. goto(st)
  4407.  
  4408. *drop
  4409.   selectconf(%usern%,N)
  4410.   inittxt
  4411. goto(st)
  4412.  
  4413. *reset
  4414.   selectconf(%usern%,Y)
  4415.   himsg
  4416.   sethigh(%aresp%)
  4417.   inittxt
  4418. goto(st)
  4419.  
  4420. *doret
  4421. if (%nv%wipe%)=() then return
  4422. setnv(wipe=)
  4423. setnv(wipmode=1)
  4424. return
  4425. UNKILLCTL■SetEqual(/nvme=%VAR%Y)
  4426. SetEqual(y=%MSGNUMBER%)
  4427. setequal(g=1)
  4428. enufsec(100)
  4429. iftrue(goto (stkill))
  4430. setequal(a=%NAME%)
  4431. upcase(a)
  4432. setequal(i=%MSGFROM%)
  4433. upcase(i)
  4434. setequal(j=%MSGTO%)
  4435. upcase(j)
  4436. notif (&i)=(&a) then notif (&j)=(&a) then setequal(g=0)
  4437. if (%MSGNAMEC%)=(Yes) then setequal(g=0)
  4438. if (&g)=(0) then goto(restandret)
  4439. *stkill
  4440. msgunkill (/:LASTMSG/,%var%y)
  4441. say(&12&&CR&Message #%var%y has been undeleted!&CR&)
  4442. *restandret
  4443. SetEqual(y=%NV%ME%)
  4444. SetEqual(/nvme=)
  4445. SetEqual(i=%NV%I%)
  4446. return
  4447.  
  4448.  
  4449. EXE2CTL╤
  4450. enufsec(50)
  4451. ifnottrue(return)
  4452. get (/:memo/,2,1)
  4453. setequal(a=%ARESP%)
  4454. len(/:memo3/)
  4455. notif (%aresp%)=(0) then setequal(a=/:memo3/)
  4456.  
  4457. say(Moving .EXE file ...*)
  4458.  
  4459. fcopy(\pbcopy\temp3\pb%VAR%A.EXE,\pbcopy\temp\temp\temp\pboard.exe)
  4460. notif (%ARESP%)=(0) then return
  4461.  
  4462. say( Done!&CR&Adding your serial number ...*)
  4463. get (/:memo/,3,10)
  4464. setequal(b=%ARESP%)
  4465. exec(\serial\serial.exe %VAR%A \pbcopy\temp\temp\temp\pboard.exe #%VAR%B /125A)
  4466.  
  4467. ;say( Done!&CR&Adding .EXE to batch (may take a while) ...*)
  4468. ;exec(\pbcopy\pc.exe \pbcopy\temp\temp\BBS2 \PBCOPY\temp\temp\temp\)
  4469. ;say( Done!&CR&Compressing batch ...*)
  4470. ;exec(\DOS\LHA.EXE U \PBCOPY\TEMP\MAIN2.LZH \PBCOPY\TEMP\TEMP\BBS2)
  4471. say( Done!&CR&Zipping file ...*)
  4472. exec(\DOS\PKZIP.EXE -eX \PBCOPY\EXE-%NODE%.ZIP \PBCOPY\TEMP\TEMP\TEMP\PBOARD.EXE)
  4473. say( Done!&CR&Sending EXE-%NODE%.ZIP via ZMODEM ...)
  4474. say()
  4475. exec(\BBS\DSZ.COM port %PORT% speed %LBAUD% sz -m \PBCOPY\EXE-%NODE%.ZIP)
  4476. log(--,Downloaded PB EXE file)
  4477. return
  4478. CHGZCTL┬;chg.ctl - control file used for changing the current conference
  4479. ;
  4480. ;modified 1/23/95 to automatically change the the conference number
  4481. ;previously stored in %VAR%Z
  4482.  
  4483. *sela
  4484. CmpValO(%MAXAREA%,%VAR%Z) ;cmpvalo will report no if it's under 1.
  4485. IfTrue (Return)
  4486. SelArea(%VAR%Z)
  4487. EnufSec(%AREASEC%)
  4488. IfTrue(Goto (cnt))
  4489. SelArea(/:LASTMSG/)
  4490. Say(&CR&&14&Your security level isn't sufficient to access the conference you want.&CR&)
  4491. enter
  4492. Return
  4493. *cnt
  4494. Display(areas\welc%VAR%Z)
  4495. ListFile(areas\farea%VAR%Z)
  4496. if (%FAREA%)=(AREAS\FAREA%VAR%Z) then goto (fsetup)
  4497. goto (seled)
  4498.  
  4499. *fsetup
  4500. selfarea(1)
  4501. setequal(/lastdown=1)
  4502. *seled
  4503. Say(Area #%VAR%Z:&15& %AREANAME%&11& is now selected!&CR&&7&)
  4504. if (%AREAPVT%)=(Y) then say(Private mail is allowed in this area.)
  4505. if (%AREAPVT%)=(N) then say(No private mail is allowed in this area.)
  4506. if (%AREAFPUB%)=(Y) then say(All messages are forced public.)
  4507. if (%AREAFPVT%)=(Y) then say(All messages are forced private.)
  4508. if (%MSGNET%)=(Y) then say(Netmail is supported in this area.)
  4509. if (%MSGFNET%)=(Y) then say(All mail in this area is Netmail.)
  4510. linefeed(1)
  4511. enter
  4512. SetEqual(/LASTMSG=%VAR%Z)
  4513. seek(areas\news/:lastmsg/.asc)
  4514. iftrue(loadmem(control\macros\cnfnews.ctl))
  4515. Return
  4516. LTAGGEDCTLSeek(%pbtemp%tagged.%NODE%)
  4517. IfNotTrue (Goto (none))
  4518. if (%graphics%)=(RIP) then clearscr
  4519. Say(&CR&&15&Files currently tagged:&CR&)
  4520. Lview(%pbtemp%tagged.%NODE%,10,7)
  4521. linefeed(1)
  4522. Enter
  4523. Return
  4524. *none
  4525. Say(&CR&&11&No files are tagged at this time.&CR&)
  4526. enter
  4527. Return
  4528. UUCPCTLⁿcapture(tmpm.%node%)
  4529. zap(tmpm2.%node%,TO:1:1/31)
  4530. appendto(tmpm2.%node%,To:%nv%inetaddr%)
  4531. appendto(tmpm2.%node%,)
  4532. inittxt
  4533. exec(copy tmpm2.%node%+tmpm.%node% tmpm3.%node%,)
  4534. import(tmpm3.%node%,,1,100)
  4535. lines(tmpm3.%node%)
  4536. setmax(%aresp%)
  4537. return
  4538. NOTFCTLª
  4539. eline(70)
  4540. SetEqual(c=0)
  4541. Say(Their name couldn't be found.  )
  4542. Say(    &3&Would you like to send the message anyway? &9&[   ]&14&*)
  4543. Back(4)
  4544. YesNoAsk(*)
  4545. return
  4546. NEWSUBCTL
  4547. Say(&CR&&3&                 What is this message about?&12&:&11&(                    )&15&*)
  4548. Back(21)
  4549. SetFill(%var%b)
  4550. cAsk(%LEN%20%*)
  4551. killperc
  4552. SetEqual(b=%RESP%)
  4553. setequal(z=%var%b)
  4554. upcase(b)
  4555. find(%var%b,SYSP)
  4556. iftrue(setequal(z=))
  4557. setequal(b=%var%z)
  4558. return
  4559. UPNEWSCTL┌*Update
  4560. Say(&CR&&14&Updating Newsletter...)
  4561. Kill(%NV%NEWS%.OLD)
  4562. Rename(%NV%NEWS%.%NV%NEWSEXT%,%NV%NEWS%.OLD)  ; backup old news.txt file
  4563. SetEqual(a=1)
  4564. SetEqual(b=0)
  4565. *LoopMe
  4566. Seek(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  4567. If(%ARESP%)=(No) then If(%VAR%B)=(0) then Goto(ThatsIt)
  4568. IfTrue(Goto(AddIt))
  4569. Inc(a)
  4570. SetEqual(b=0)
  4571. Goto(LoopMe)
  4572.  
  4573. *AddIt
  4574. Lines(%nv%newstemp%HDR%VAR%A.%VAR%B)
  4575. If(%ARESP%)<(2) then Goto(GoForIt) ; if article was killed, skip it
  4576. AppendTo(%NV%NEWS%.%NV%NEWSEXT%,/-)
  4577. Inpopen(%nv%newstemp%HDR%VAR%A.%VAR%B)   ; the header file must contain 2 lines
  4578. InpRead
  4579. AppendTo(%NV%NEWS%.%NV%NEWSEXT%,%ARESP%)
  4580. InpRead
  4581. AppendTo(%NV%NEWS%.%NV%NEWSEXT%,%ARESP%)
  4582. InpClose
  4583.  
  4584. Inpopen(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  4585. DO
  4586.  Inpread
  4587.  AppendTo(%NV%NEWS%.%NV%NEWSEXT%,%ARESP%)
  4588. EOFLOOP
  4589. AppendTo(%NV%NEWS%.%NV%NEWSEXT%,/*)
  4590. AppendTo(%NV%NEWS%.%NV%NEWSEXT%,)
  4591. InpClose
  4592. *GoForIt
  4593. Kill(%nv%newstemp%HDR%VAR%A.%VAR%B)
  4594. Kill(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  4595. Inc(b)
  4596. Goto(LoopMe)
  4597.  
  4598. *ThatsIt
  4599. Exec(PBNEWS.EXE MAIN.CNF)
  4600. if (%aresp%)<>(0) then goto (error)
  4601. Say(&CR&&14&Newsletter Updated!)
  4602. SetNv(Newsmade=Yes)
  4603. SetEqual(a=1)
  4604. SetEqual(b=0)
  4605. Return
  4606.  
  4607.  
  4608. *error
  4609. say(&CR&&12&ERROR updating newsletter - &7&could not execute PBNEWS.EXE.)
  4610. return
  4611. SHELLCTLtloadsub(control\exitwip.ctl)
  4612.  
  4613. ;procedure called for shelling to dos from remote.
  4614.  clearscr
  4615.  If (%LOCAL%)=(TRUE) then goto (locshell)
  4616.  Exec (dos %PORT%)
  4617. goto (doret0)
  4618.  
  4619. *locshell
  4620.  Log(--,%NAME% Shelled to DOS) 
  4621.  Exec (command.com)
  4622.  
  4623.  
  4624. *DoRet0
  4625. if (%nv%wipe%)=() then return
  4626. setnv(wipe=)
  4627. setnv(wipmode=1)
  4628. return
  4629.  
  4630.  
  4631. ;----------------------------------------------------------------------------
  4632.  
  4633. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  4634. yesnoask (Shell to DOS?)
  4635. if (%resp%)=(No) then goto (mainm)
  4636. ;if (%NODE%)=(2) then goto (nosh0)
  4637. mcavail(N)
  4638. clearscr
  4639.  If (%LOCAL%)=(TRUE) then goto (locshell)
  4640. ; get(%LBAUD%,1,2)
  4641. ; Exec (command.com /c dos %PORT% %BAUD% %ARESP%)
  4642. ;mcavail(/:defavail/)
  4643. setequal(/resp=S)
  4644. Log(--,Executing Door #%RESP%)
  4645. FixFile (door.bt,door.bat)
  4646. setequal (a=/:DOORS/)
  4647. inc(a)
  4648. setequal(/DOORSE=%VAR%A)
  4649. Say(&14&&CR&Please wait, shelling to DOS . . .*)
  4650. mcavail(N)
  4651. zap(%pbtemp%tagtmp.%node%,%nv%totalTime%)
  4652. appendto(%pbtemp%tagtmp.%node%,%nv%totalfree%)
  4653. Exit (80,DOORS|)
  4654.  
  4655. *locshell
  4656.  Log(--,%NAME% Shelled to DOS) 
  4657.  Exec (command.com)
  4658. mcavail(/:defavail/)
  4659. goto (ret0)
  4660. *nosh0
  4661. say(you can't shell from this node)
  4662. enter
  4663. goto (ret0)
  4664.  
  4665. *ret0
  4666. if (%nv%wipe%)=() then return
  4667. setnv(wipe=)
  4668. setnv(wipmode=1)
  4669. return
  4670.  
  4671. *mainm
  4672. if (%nv%wipe%)=() then loadmem(control\main.mnu)
  4673. setnv(wipe=)
  4674. setnv(wipmode=1)
  4675. loadmem(control\main.mnu)
  4676. MAINCNFCTL;MAINCNF.CTL
  4677. ;Creates MAIN.CNF configuration file for PB NEWS
  4678.  
  4679. Zap(MAIN.CNF,%BBS%)                              ; BBS Name
  4680. AppendTo(MAIN.CNF,%SYSOP%)                       ; Sysop's Name
  4681. AppendTo(MAIN.CNF,%AREANAME%)                    ; Conference Name
  4682. AppendTo(MAIN.CNF,DISPLAY\NEWSLTR.ASC)           ; ASCII display
  4683. AppendTo(MAIN.CNF,DISPLAY\NEWSLTR.ANS)           ; ANSI display
  4684. AppendTo(MAIN.CNF,%NV%NEWS%.%NV%NEWSEXT%)        ; NEWS.TXT filename
  4685. AppendTo(MAIN.CNF,4)                             ; style number
  4686. Return
  4687. TAGLISTCTL╒seek(%pbtemp%tagged.%node%)
  4688. ifnottrue(goto(none))
  4689. setnv(r3=%var%r)
  4690.  
  4691. inpopen(%pbtemp%tagged.%node%)
  4692.  
  4693. say(&CR&&10& ----- Files Currently Tagged  -----------&CR&)
  4694. say(&11&#    FILENAME      BYTES    TRANSFER TIME)
  4695. setequal(d=0)
  4696. setequal(m=0)
  4697. setequal(e=0)
  4698. setequal(f=0)
  4699. setequal(r=5)
  4700.  
  4701. do
  4702.   inc(d)
  4703.   inpread
  4704.   setequal(w=%aresp%)
  4705.   cmpval(9,%var%d)
  4706.   say(&10&*)
  4707.   ifnottrue(say(0*))
  4708.   say(%var%d: &7&%var%w*)
  4709.   len(%var%w)
  4710.   addvar(12+-%aresp%=a)
  4711.   get(            ,1,%var%a)
  4712.   say(%aresp%*)
  4713.   inpline(%pbtemp%tagged2.%node%,%var%d)
  4714.   setequal(w=%aresp%)
  4715.   size(%var%w)
  4716.   addvar(%var%e+%aresp%=e)
  4717.   setequal(c=%aresp%)
  4718.   say(   %aresp%*)
  4719.   len(%aresp%)
  4720.   addvar(7+-%aresp%=a)
  4721.   get(         ,1,%var%a)
  4722.   say(%aresp% *)
  4723.   ttime(%var%c)
  4724.   say(%aresp% )
  4725.   inpLine(%pbtemp%free.%node%,%var%d)
  4726.   addvar(%var%f+%ttim%=f)
  4727.   ifnottrue(addvar(%var%m+%ttim%=m))
  4728.   inc(r)
  4729.   if (%var%r)>(/:screenlen/) then
  4730.     setequal(r=0)
  4731.     pauseprompt
  4732.     if (%aresp%)=(STOP) then goto (doret1)
  4733.     endif
  4734. eofloop
  4735.  
  4736. inpclose
  4737.  
  4738. cnvtk(%var%e)
  4739. say(&CR&&3&    TOTAL      %aresp% kbytes  %var%f minutes)
  4740. *doret1
  4741. setequal(r=%nv%r3%)
  4742. setnv(r3=0)
  4743. return
  4744.  
  4745. *none
  4746. say(&CR&&3&   No files currently tagged.&CR&)
  4747. return
  4748. TRYHIGHCTLk
  4749. say(try nuiq high...)
  4750. ask(enter high msg # for this conf.)
  4751. sethigh(%resp%)
  4752. say(done!)
  4753. enter
  4754. return
  4755. MARKMESSCTL┴setequal(a=0)
  4756. if (%nv%marked%)=() then setequal(/nvmarked=0)
  4757. if (0)=(%nv%marked%) then goto (stm)
  4758. setequal(g=0)
  4759. *m1
  4760. inc(g)
  4761. setequal(a=nv%m%var%g%)
  4762. prc(%%VAR%A)
  4763. setequal(a=%ARESP%)
  4764. if (&a)=(&y) then return
  4765. if (&g)=(%nv%marked%) then goto (stm)
  4766. goto (m1)
  4767. *stm
  4768. addvar(%nv%marked%+1=g)
  4769. setequal(/nvmarked=%var%g)
  4770. say(&CR&&14&Message &7&%var%y &14&has been marked for later retrival.&CR&)
  4771. setequal(/nvm%NV%MARKED%=%var%y)
  4772. enter
  4773. return
  4774. JUSTIFYCTLf;JUSTIFY.CTL
  4775. ;justifies current NEWS article to PB NEWS limits
  4776. ;   * Line limit for newsletter article in PB NEWS is 69 characters.
  4777.  
  4778. Inpopen(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  4779. SetNv(buffer=)
  4780. DO
  4781.   Inpread
  4782.   SetEqual(c=%ARESP%)
  4783.   SetEqual(d=%NV%BUFFER%) ; must store in a-z var in case there are commas
  4784.   If(&d)<>() then
  4785.     Rtrim(d)   ; trims trailing spaces off of buffer
  4786.     Get(&c,1,1)
  4787.     If(%ARESP%)=( ) then SetEqual(c=%VAR%D%VAR%C)
  4788.     If(%ARESP%)<>( ) then SetEqual(c=%VAR%D %VAR%C)
  4789.    endif
  4790.   If(&d)=() then SetEqual(c=%ARESP%)
  4791.   SetNv(buffer=)
  4792.   Len(%VAR%C)
  4793.   SetEqual(d=%ARESP%)
  4794.   If(&d)<(70) then Goto(WriteIt)
  4795.   Get(&c,%VAR%D,1)
  4796.   *TrimIt
  4797.   SetNv(buffer=%ARESP%%NV%BUFFER%)
  4798.   AddVar(%VAR%D+-1=d)
  4799.   Get(&c,1,%VAR%D)
  4800.   SetEqual(c=%ARESP%)
  4801.   Len(%VAR%C)
  4802.   SetEqual(d=%ARESP%)
  4803.   Get(&c,%VAR%D,1)
  4804.   If(%ARESP%)<>( ) then If(%ARESP%)<>() then Goto(TrimIt)
  4805.   If(&d)>(69) then Goto(TrimIt)
  4806.  
  4807.   *WriteIt
  4808.   AppendTo(%nv%newstemp%TEMP%VAR%A.%VAR%B,%VAR%C)
  4809. EOFLOOP
  4810. InpClose
  4811. Kill(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  4812. Rename(%nv%newstemp%TEMP%VAR%A.%VAR%B,%nv%newstemp%NEWS%VAR%A.%VAR%B)
  4813. Return
  4814.  
  4815. SHOWMWIPCTLö&setnv(wipfS=)
  4816.  
  4817. *AGMail
  4818. getmail(%var%i,,%var%w)
  4819. jump (setk)
  4820. ;        MSGSETBIT(%var%i,10,0)
  4821. setequal(s=0)
  4822. if (%MsgNumber%)=(0) then goto (next)
  4823. setequal(z=10)
  4824. ;notif (%ARESP%)=(Yes) then notif(%ARESP%)=(DELETED) then goto (nope)
  4825. *banyway
  4826. if (%nv%wipmode%)<>(1) then
  4827.   setnv(wipmode=1)
  4828.   setnv(wipfS=)
  4829. endif
  4830. clearscr
  4831. if (%nv%wipfs%)<>() then goto (passShow)
  4832. setnv(NoInfo=1)
  4833. if (%sec%)<(100) then loadsub(control\ewipscr.ctl,setnv(wipf=inmsg))
  4834. if (%SEC%)=>(100) then loadsub(control\ewipscr.ctl,setnv(wipf=inmsg-s))
  4835. arrayread(%pbtemp%msgstmp.%node%)
  4836. setnv(wipfS=1)
  4837.  
  4838. *passShow
  4839. setequal(x=0)
  4840. setequal(s=0)
  4841. setequal(c=07~msgnumber~%msgnumber%~)
  4842. jump (wipc)
  4843. setequal(f=%nv%f01%)
  4844. write(Message # %msgnumber% of %var%f  sent on )
  4845. setequal(c=07~varf~%var%f~)
  4846. jump (wipc)
  4847. nicedate(%MSGSNTD%)
  4848. write(%aresp% at )
  4849. setequal(c=07~sentd~%aresp%~)
  4850. jump (wipc)
  4851. nicetime(%MSGSNTT%)
  4852. writeln(%aresp%)
  4853. setequal(c=07~sentt~%aresp%~)
  4854. jump (wipc)
  4855. niceequal(b=%msgfrom%)
  4856. writeln(Sent by: %var%b)
  4857. setequal(c=07~sentb~%var%b~)
  4858. jump (wipc)
  4859. niceequal(b=%msgto%)
  4860. writeln(Addressed to: %var%b)
  4861. setequal(c=07~addrto~%var%b~)
  4862. jump (wipc)
  4863. writeln(Regarding: %msgdesc%)
  4864. setequal(c=07~regarding~%msgdesc%~)
  4865. jump (wipc)
  4866. niceequal(b=%msgpvt%, %msgrcvd%, Read %msgrdtimes% times, %replies%)
  4867. If(%NV%KILLED%)=(YES) then setequal(b=%var%b, DELETED)
  4868. writeln(Status: %var%b)
  4869. setequal(c=07~status~%var%b~)
  4870. jump (wipc)
  4871. setequal(b=None)
  4872. setnv(attf=)
  4873.  
  4874. if (%MSGATTACH%)=(Y) then 
  4875.   setnv(attf=1)
  4876.   setequal(b=)
  4877.   if (%MSGPVT%)=(PRIVATE) then setequal(s=10)
  4878.   setequal(b=* File Attached: %MSGATTNAME% )
  4879.   If(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%ATTEXT%)
  4880.   NotIf(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%STOREDEXT%)
  4881.   setequal(b=%var%b%ARESP% bytes -- Time to download: )
  4882.   TTime(%ARESP%)
  4883.   setequal(b=%var%b%ARESP%)
  4884.  endif
  4885. setequal(c=07~attachinfo~%var%b~)
  4886. jump (wipc)
  4887. if (%nv%attf%)=(1) then jump (attbutton)
  4888. if (%nv%attf%)=() then jump (attbclear)
  4889.  
  4890. if (%nv%killed%)=(YES) then jump (unsetkbutton)
  4891. if (%nv%killed%)<>(YES) then jump (setkbutton)
  4892.  
  4893. setequal(c=14~msgtxt~200~12~)
  4894. jump (wipc)
  4895. writeln(Text of Message Follows: ------------------------------------------------)
  4896. setnv(maxl=0)
  4897. *dotext
  4898. setequal(y=%nv%maxl%)
  4899. setequal(f=0)
  4900. *stl1
  4901. inc(y)
  4902. inc(f)
  4903. showline(%var%y)
  4904. writeln(%aresp%)
  4905. if (%aresp%)<>() then setequal(c=07~msgtxt~%aresp%~)
  4906. if (%aresp%)=() then setequal(c=07~msgtxt~ ~)
  4907. jump (wipc)
  4908. if (%var%f)<(13) then if (%var%y)<(%maxline%) then goto (stl1)
  4909.  
  4910. writeln (Message Reading Options:)
  4911. writeln ( (N)ext, (P)revious, (R)eply, (F)orward, (KE)ep, (C)ompose, (D)ownload Attach)
  4912. writeln ( 'UserFile' = Edit User Record, (H)elp, (Q)uit)
  4913. writeln ()
  4914. setnv(maxl=%var%y)
  4915.  
  4916. setequal(c=07~msgtxt~-1~)
  4917. jump (wipc)
  4918. setequal(c=0F~msgtxt~In-Box Message~1~1~2~)
  4919. jump (wipc)
  4920. setequal(c=0F~RecCount~20~1~0~1~)
  4921. jump (wipc)
  4922. setequal(c=0F~Exit~Exit~1~1~3~)
  4923. jump (wipc)
  4924. setequal(c=0F~Scrl_UP~~1~1~4~)
  4925. jump (wipc)
  4926. setequal(c=0F~Scrl_Dn~~1~1~5~)
  4927. jump (wipc)
  4928. setequal(c=0F~Page_Up~~1~1~6~)
  4929. jump (wipc)
  4930. setequal(c=0F~Page_Dn~~1~1~7~)
  4931. jump (wipc)
  4932. *prompt0
  4933. setequal(c=0A~)
  4934. jump (wipc)
  4935. setequal(y=10)
  4936. jump (wipask)
  4937. if (%aresp%)<>(24) then goto (gotaresp)
  4938. setequal(c=0A~)
  4939. jump (wipc)
  4940. setequal(y=20)
  4941. jump (wipc)
  4942. if (%aresp%)<>(24) then goto (gotaresp)
  4943. setequal(c=0A~)
  4944. jump (wipc)
  4945. setequal(y=155)
  4946. jump (wipask)
  4947. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  4948. *gotaresp
  4949. bigif (ke:flagasnew,f:forw,r:reply,p:previous,k:kill,n:next,h:help2,q:inbox)
  4950. bigif (c:compose,d:downatt)
  4951. ;userfile:userrec
  4952. notif(%NV%KILLED%)=(YES) then bigif (keep:flagasnew,forward:forw,reply:reply,prev:previous,kill:kill,next:next,help:help2,Exit:inbox,compose:compose)
  4953. if(%NV%KILLED%)=(YES) then bigif (keep:flagasnew,forward:forw,reply:reply,prev:previous,kill:unkill,next:next,help:help2,Exit:inbox,compose:compose)
  4954. if (%nv%attf%)=(1) then bigif (Download:downatt)
  4955. if (%sec%)=>(100) then bigif(UserFile:userrec)
  4956. setequal(b=%resp%)
  4957. find(&b,,)
  4958. if (%aresp%)<=(1) then goto (notlistbox)
  4959. addvar(%aresp%+1=c)
  4960. get(&b,%var%c,1000)
  4961. if (%aresp%)<>(-1) then goto (prompt0)
  4962. if (%nv%maxl%)=>(%maxline%) then goto (endm)
  4963. goto(dotext)
  4964.  
  4965. *notlistbox
  4966. *reading
  4967. goto (prompt0)
  4968.  
  4969. *flagasnew
  4970. MsgSetBit(%MSGNUMBER%,10,0)
  4971. Goto(inbox)
  4972.  
  4973. *mark
  4974. loadsub(control\macros\markmess.ctl)
  4975. SetEqual(/nvstatus=REPEAT)
  4976.  
  4977. *help2
  4978. findfirst(display\help\readn*.wip)
  4979. if (%aresp%)=(0) then goto (nowiphelp)
  4980. if (%aresp%)=() then goto (nowiphelp)
  4981. display(display\help\readn,/:SEC/)
  4982. goto (prompt0)
  4983. *nowiphelp
  4984. loadsub(control\exitwip.ctl)
  4985. display(display\help\readn,/:sec/)
  4986. goto(prompt0)
  4987.  
  4988. *downatt
  4989. zap(%pbtemp%varr.%NODE%,%var%R)
  4990. linefeed(1)
  4991. loadsub(control\exitwip.ctl)
  4992. LoadSub(control\macros\savevars.ctl)
  4993. loadsub(control\DOWNATT.CTL)
  4994. Loadsub(control\macros\restvars.ctl)
  4995. goto (aGMail)
  4996.  
  4997. *forw
  4998. loadsub(control\macros\messforw.ctl)
  4999. if (&g)=(1) then goto (inv2)
  5000. ;goto (repeat)
  5001. Goto(agmail)
  5002.  
  5003. *marked   ; appears to be a useless label
  5004. setequal(w=1)
  5005. setequal(/nvreadtype=1)
  5006. setequal(u=0)
  5007. goto (next)
  5008.  
  5009. *userrec
  5010.  EnufSec(100)
  5011.  IfNotTrue(Goto(inv2))
  5012.  loadsub(control\macros\userrwip.ctl)
  5013.  Goto(AGMAil)
  5014.  
  5015. *rev
  5016. if (&y)=(0) then goto (inv2)
  5017. setequal(f=%nv%f01%)
  5018. setequal(y=%var%f)
  5019. setequal(w=-1)
  5020. if (&y)=(0) then goto (inv2)
  5021. goto (repeat)
  5022.  
  5023. *Qdisp
  5024. SetEqual(/nvstatus=INBOX)
  5025. Return
  5026.  
  5027. *Inv2
  5028. ;SetEquaL(/NVSTATUS=INV2)
  5029. ;Return
  5030. if (&s)=(10) then goto (abb)
  5031. say(&CR&&CR&&12&Invalid selection! Please try again...&CR&)
  5032. secpause(1)
  5033. flushout
  5034. Goto(Reading)
  5035.  
  5036. *kill
  5037. SetEqual(/nvme=%VAR%Y)
  5038. SetEqual(y=%MSGNUMBER%)
  5039. loadsub(control\macros\killmess.ctl)
  5040. SetEqual(y=%NV%ME%)
  5041. SetEqual(/nvme=)
  5042. SetEqual(i=%NV%I%)
  5043. ;NotIf(&g)=(0) then SetEqual(^%VAR%i=DELETED)
  5044. Goto(Inbox)
  5045.  
  5046. *Unkill
  5047. LoadSub(Control\macros\unkill.ctl)
  5048. Goto(inbox)
  5049.  
  5050.  
  5051. *Inbox
  5052. SetEqual(/nvstatus=INBOX)
  5053. Return
  5054.  
  5055. *next
  5056. SetEqual(i=%NV%I%)
  5057. Inc(i)
  5058. If(&i)>(%NV%TOTMAX%) then Goto(lastmsg)
  5059. SetEqual(/nvselected=%VAR%I)
  5060. SetEqual(/nvi=%VAR%I)
  5061. Goto(MovingDown)
  5062. ;Goto(SetVars)
  5063.  
  5064. *previous
  5065. SetEqual(i=%NV%I%)
  5066. ;Say(BEFORE I=%VAR%I)
  5067. AddVar(%VAR%I+-1=i)
  5068. ;Say(AFTER I=%VAR%I)
  5069. If(&i)<(1) then Goto(firstmsg)
  5070. SetEqual(/nvselected=%VAR%I)
  5071. SetEqual(/nvi=%VAR%I)
  5072. Goto(MovingUp)
  5073.  
  5074. *SetVars
  5075. ;Say(BEFORE I=%VAR%I)
  5076. SetEqual(i=^:I^)
  5077. ;Say(AFTER I=%VAR%I)
  5078. ;Say(:1=^:1^  :2=^:2^)
  5079. getmail(%var%i,,%var%w)
  5080. ;Say(ARESP from the GetMail(%VAR%I,,%VAR%W)=%ARESP%)
  5081. ;Enter
  5082. Say($0$*)
  5083. Goto(AgMail)
  5084.  
  5085. *getHiLow
  5086. himsg
  5087. setequal(f=%ARESP%)
  5088. setnv(f01=%aresp%)
  5089. lowmsg
  5090. setequal(n=%ARESP%)
  5091. setnv(n=%aresp%)
  5092. ret
  5093.  
  5094. *firstmsg
  5095. Say(&CR&&12&This is the first message in your INBOX&CR&)
  5096. SecPause(1)
  5097. Inc(i)
  5098. ;SetEqual(i=%NV%I%)
  5099. SetEqual(/nvselected=%VAR%I)
  5100. SetEqual(/nvstart=%VAR%I)
  5101. SetEqual(/nvi=%VAR%I)
  5102.  
  5103. SetEqual(i=^:I^)
  5104. Goto(Inbox)
  5105.  
  5106. ;Goto(SetVars)
  5107.  
  5108. *lastmsg
  5109. Say(&CR&&12&This is the last message in your INBOX&CR&)
  5110. SecPause(1)
  5111. AddVar(%VAR%I+-1=i)
  5112. SetEqual(/nvselected=%VAR%I)
  5113. SetEqual(/nvi=%VAR%I)
  5114.  
  5115. SetEqual(i=^:I^)
  5116. Goto(Inbox)
  5117.  
  5118. ;Goto(SetVars)
  5119.  
  5120. *MovingUp
  5121.   SetEqual(/nvtemp=%NV%SELECTED%)
  5122.   NotIf(%NV%SELECTED%)>=(%NV%START%) then Goto(QuickFix)
  5123. ;  SetEqual(i=%NV%SELECTED%)
  5124. ;  AddVar(%VAR%I+-1=i)
  5125.   SetEqual(/nvselected=%VAR%I)
  5126.   SetEqual(/nvscreen=REFRESH)  
  5127.   SetEqual(i=%NV%SELECTED%)
  5128.   AddVar(%VAR%I+3=q)
  5129.   setequal(y=^:I^)
  5130.   Goto(SetVars)
  5131.  
  5132. *QuickFix
  5133.    ;AddVar(%NV%START%+-1=i)
  5134.    If(&i)<(1) then 
  5135.       SetEqual(i=%NV%TOTMAX%)
  5136.       SetEqual(/nvselected=%VAR%I)
  5137.       Inc(i)
  5138.       AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  5139.       Inc(i)
  5140.       SetEqual(/nvstart=%VAR%I)
  5141.       SetEqual(/nvscreen=NORMAL)
  5142.       Goto(SetVars)
  5143.     endif
  5144.    SetEqual(/nvstart=%VAR%I)
  5145.    SetEqual(/nvscreen=NORMAL)
  5146.    SetEqual(/nvselected=%VAR%I)
  5147.    Goto(SetVars)
  5148.  
  5149. *MovingDown
  5150.   SetEqual(/nvtemp=%NV%SELECTED%)
  5151.   ;SetEqual(i=%NV%SELECTED%)
  5152.  
  5153.   NotIf(&i)<=(%NV%MAX%) then
  5154.     SetEqual(/nvselected=%VAR%I)
  5155.     AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  5156.     Inc(i)
  5157.     Inc(i)
  5158.     SetEqual(/nvstart=%VAR%I)
  5159.     SetEqual(i=%NV%SELECTED%)
  5160.     Goto(SetVars)
  5161.    Endif
  5162.  
  5163.   SetEqual(/nvselected=%VAR%I)
  5164.   SetEqual(/nvscreen=REFRESH)  
  5165.   SetEqual(i=%NV%SELECTED%)
  5166.   AddVar(%VAR%I+3=q)
  5167.   setequal(y=^:I^)
  5168.   Goto(SetVars)
  5169.  
  5170. *reply
  5171. ;SetEqual(/nvnum=%VAR%I)
  5172. loadsub(control\exitwip.ctl)
  5173. loadsub(control\macros\reply.ctl)
  5174. ;SetEqual(i=%NV%NUM%)
  5175. SetEqual(i=%NV%SELECTED%)
  5176. ;Say(i=%VAR%I)
  5177. setnv(wipfs=)
  5178. SetEqual(/nvnum=)
  5179. goto (setvars)
  5180.  
  5181. *compose
  5182. LoadSub(control\macros\savevars.ctl)
  5183. loadsub(control\exitwip.ctl)
  5184. Loadsub(control\macros\enter.ctl)
  5185. LoadSub(control\macros\restvars.ctl)
  5186. setnv(wipfs=)
  5187. Goto (agmail)
  5188.  
  5189. *GCHAR
  5190. COMPRINT(%NV%TEXT%)
  5191. SETEQUAL(A=0)
  5192. DO
  5193. COMKEY
  5194. ASCII
  5195. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  5196. INC(A)
  5197. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  5198. IF(%ARESP%)=(&B) THEN RET
  5199. IF(&A)>(45) THEN RET
  5200. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  5201. DELAY18TH(2)
  5202. LOOP
  5203. *WIPC
  5204. LOCALKEY(1)
  5205. IFNOTTRUE(GOTO(NOLKEY))
  5206. SYSKEYCHECK
  5207. SETEQUAL(/RESP=)
  5208. SETEQUAL(/RESP=)
  5209. *NOLKEY
  5210. CCARRIER
  5211. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  5212. CHECKSUM(%VAR%C)
  5213. SETEQUAL(B=6)
  5214. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  5215. SETNV(PBACK=)
  5216. JUMP(GCHAR)
  5217. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  5218. SETEQUAL(/IBUFF=%NV%PBACK%)
  5219. LEN(%NV%PBACK%)
  5220. SETEQUAL(/IBUFF0=%ARESP%)
  5221. RET
  5222. *NOC0
  5223. log(<<,Carrier lost.)
  5224. quitbbs
  5225.  
  5226. *attbutton
  5227. setequal(c=07~Download~Download %MSGATTNAME%~)
  5228. goto (wipc)
  5229.  
  5230. *attbclear
  5231. setequal(c=15~Download~)
  5232. goto (wipc)
  5233.  
  5234. *setkbutton
  5235. setequal(c=07~kill~Kill~)
  5236. goto (wipc)
  5237.  
  5238. *unsetkbutton
  5239. setequal(c=07~kill~UnKill~)
  5240. goto (wipc)
  5241.  
  5242. *setk
  5243. SetEqual(/nvkilled=NO)
  5244. if(%ARESP%)=(DELETED) then SetEqual(/nvkilled=YES)
  5245. ret
  5246.  
  5247. *endm
  5248. setequal(c=13~There is no more message text.~No More Text~1~)
  5249. jump (okbox0)
  5250. setequal(c=0A~)
  5251. jump (wipc)
  5252. goto (prompt0)
  5253.  
  5254.  
  5255. *wipAsk
  5256. loadsub(control\wipask.ctl)
  5257. ret
  5258.  
  5259. *okbox0
  5260. Jump (wipc)
  5261. comlineinput(180,l)
  5262. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  5263. if (%resp%)=() then goto (okbox)
  5264. ret
  5265. REPLYCTLûfreespace(%CDRIVE%:)
  5266. if (%ARESP%)<(%MINSPACE%) then loadmem (control\macros\nospace.ctl)
  5267.  
  5268. SetEqual(/nvccs=0)
  5269. setequal(k=0)
  5270. setequal(/nvMsgPvt=N)
  5271. If (%AREAFPVT%)=(Y) then setequal(/nvMsgPvt=Y)
  5272. capture(%pbtemp%quote.%NODE%)
  5273. inittxt
  5274. setequal(a=%MSGFROM%)
  5275. SetEqual(/nvaddressee=%MSGFROM%)
  5276. setequal(b=%MSGDESC%)
  5277. SetEqual(/nvsubject=%MSGDESC%)
  5278. SetEqual(/nvorignum=%MSGNUMBER%) ; msg # of message you are replying to
  5279. SetEqual(/nvaddresser=%NAME%)
  5280. fcomma(b)
  5281. fcomma(a)
  5282. setequal(z=15)
  5283. seekuser(%var%a)
  5284. setequal(c=%NDNUMB%)
  5285. SetEqual(/nvtousernum=%NDNUMB%)
  5286.  
  5287. IfNotTrue (setequal(c=0))
  5288. SetEqual(/nvMsgPvt=No)   ; default to No
  5289. ;if (%AREAPVT%)=(N) then goto (stenter1)
  5290. ;if (%AREAFPVT%)=(Y) then goto (stenter1)
  5291. ;say(&15&Would you like to make this a private message? (&12&Y&15&/&12&N&15&)&14&*)
  5292. ;back(4)
  5293. ;yesnoask(*)
  5294. ;setequal(/nvMsgPvt=%RESP%)
  5295. *stenter1
  5296. Spause(0)
  5297. loadmem(control\macros\menter.ctl)
  5298. UPTEXTCTL¼    Say(&14&Calculating free storage space...*)
  5299. ClearMem
  5300. FreeSpace(%CDRIVE%:)
  5301. setequal(l=%aresp%)
  5302. CmpVal(%ARESP%,%MINSPACE%)
  5303. IfTrue (Goto (notenufs))
  5304. eline(38)
  5305.  
  5306.   *pickprot
  5307. if (%baud%)=(LOCAL) then goto (pok)
  5308. display(display\utprot)
  5309. MenuAsk (&15&Which transfer protocol would you like to use?&12&: &14&*)
  5310. If (%RESP%)=(Q) Then Return
  5311. Len(%RESP%)
  5312. NotIf (%ARESP%)=(1) Then Goto (Pprob)
  5313. Seek(protocol\%RESP%-AT.BT)
  5314. IfTrue (Goto (Pok))
  5315.  
  5316.   *pprob
  5317. loadsub(control\macros\badsel.ctl)
  5318. Goto (pickprot)
  5319.  
  5320.    *Pok
  5321. addcomma(%var%l)
  5322. Say(&CR&&11&%ARESP% &15&bytes free.)
  5323. SetEqual(r=%RESP%)
  5324. cMenuAsk (%CRON%&CR&&15&Please enter the name of the file to upload&12&:&14& *)
  5325. If (%RESP%)=(<CR>) Then Return
  5326. SetEqual(x=%RESP%)
  5327. setequal(d=%resp%)
  5328. If(%LOCAL%)=(TRUE) then Goto(ChkPath)
  5329. Say(&CR&&11&We're ready to receive the file.  Please start sending now.)
  5330. FixFile(protocol\%var%r-at.bt,%PBTEMP%%var%r-at.bat)
  5331. Exec(%PBTEMP%%var%r-at.BAT│)
  5332. Goto (success)
  5333.  
  5334.   *ChkPath
  5335. SetNv(fntemp=)
  5336. *Chkpath1
  5337. Find(&x,:)
  5338. If(%ARESP%)=(2) then
  5339.   Get(&x,1,2)
  5340.   SetNv(fntemp=%ARESP%)
  5341.   Len(%VAR%X)
  5342.   AddVar(%ARESP%+-2=o)
  5343.   Get(&x,3,%VAR%O)
  5344.   SetEqual(x=%ARESP%)
  5345.  endif
  5346. *chkpath2
  5347. Find(&x,\)  ; see if they put a path in with the filename
  5348. SetEqual(o=%ARESP%)
  5349. If(%ARESP%)<>(0) then
  5350.   Get(&x,1,%VAR%O)
  5351.   SetNv(fntemp=%NV%FNTEMP%%ARESP%)
  5352.   Len(%VAR%X)
  5353.   AddVar(%ARESP%+-o=p)
  5354.   Inc(o)
  5355.   Get(&x,%VAR%O,%VAR%P)
  5356.   SetEqual(x=%ARESP%)
  5357.   Goto(ChkPath2)  ; checks for multiple backslashes
  5358.  endif
  5359.  If(%NV%FNTEMP%)<>() then
  5360.    Len(%NV%FNTEMP%)
  5361.    SetEqual(o=%ARESP%)
  5362.    Get(%NV%FNTEMP%,%ARESP%,1)
  5363.    If(%ARESP%)=(\) then
  5364.      Dec(o)
  5365.      Get(%NV%FNTEMP%,1,%VAR%O)
  5366.      SetNv(fntemp=%ARESP%)
  5367.     endif
  5368.   endif
  5369.  SetEqual(/RESP=%VAR%X)
  5370.   *locul
  5371. If(%NV%FNTEMP%)<>() then
  5372.    SetEqual(/RESP=%NV%FNTEMP%)
  5373.    Goto(DoCopy)
  5374.   endif
  5375. MenuAsk (&15&Please enter the path for this file&12&: &14&*)
  5376. *DoCopy
  5377. fCopy(%RESP%\%var%x,%PBTEMP%%var%x)
  5378. notif (%ARESP%)=(0) then goto (pok)
  5379.  
  5380.   *success
  5381. NotIf (%ARESP%)=(0) Then Goto (aborted)
  5382. ;loadsub(zc\zc2.ctl)
  5383. if (&y)=(2) then goto (aborted)
  5384. Log(--,Msg Txt uploaded (%var%x))
  5385. Import (%pbtemp%%var%x,,1,100)
  5386. kill(%pbtemp%%var%x)
  5387. Say(&CR&&14&Upload text imported into current message!)
  5388. return
  5389.  
  5390.   *notenufs
  5391. display(display\nospce)
  5392. Return
  5393.         
  5394.   *aborted
  5395. SetEqual(x=)
  5396. FlushOut
  5397. Log(--,Msg Tx upload aborted (%var%x))
  5398. Display(display\attabt)
  5399. Return
  5400.         
  5401.   *alreadyhere
  5402. Display (display\HERENOW)
  5403. Goto (pok)
  5404. MESSFORWCTLWfreespace(%CDRIVE%:)
  5405. if (%ARESP%)<(%MINSPACE%) then loadmem (control\macros\nospace.ctl)
  5406.  
  5407. setequal(g=0)
  5408. namequal(a=%MSGTO%)
  5409. namequal(b=%NAME%)
  5410. if (&a)=(&b) then goto (okf)
  5411. namequal(a=%MSGFROM%)
  5412. if (&a)=(&b) then goto (okf)
  5413. EnufSec(100)
  5414. IfTrue(goto(okf))
  5415. setequal(s=5)
  5416. setequal(g=1)
  5417. return
  5418. *okf
  5419. loadmem(control\macros\forw.ctl)
  5420. KILLTEMPCTL
  5421. *ClearAllVars
  5422. SetNv(newsmade=)
  5423. SetNv(olda=)
  5424. SetNv(oldb=)
  5425. SetNv(nva=)
  5426. SetNv(nvb=)
  5427. SetNv(yndef=)
  5428. SetNv(news=)
  5429. SetNv(newsext=)
  5430. SetNv(ntstatus=)
  5431. SetNv(date=)
  5432. SetNv(title=)
  5433. SetNv(add=)
  5434. SetNv(articles=)
  5435. SetEqual(a=1)
  5436. SetEqual(b=0)
  5437.  
  5438. *LoopMe
  5439. Seek(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  5440. If(%ARESP%)=(No) then If(%VAR%B)=(0) then Goto(ThatsIt)
  5441. IfTrue(Goto(AddIt))
  5442. Inc(a)
  5443. SetEqual(b=0)
  5444. Goto(LoopMe)
  5445.  
  5446. *AddIt
  5447. Kill(%nv%newstemp%HDR%VAR%A.%VAR%B)
  5448. Kill(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  5449. Inc(b)
  5450. Goto(LoopMe)
  5451.  
  5452. *ThatsIt
  5453. Return
  5454. SPLITCTLsetequal(b=0)
  5455. setequal(a=0)
  5456. ;SPLIT.CTL
  5457. ;splits NEWS.TXT into separate files by article
  5458.  
  5459. SetNv(news=NEWS)
  5460. SetNv(newsext=TXT)
  5461. Seek(MAIN.CNF)
  5462. IfNotTrue(LoadSub(control\macros\maincnf.ctl))
  5463. Seek(%nv%news%.%nv%newsext%)
  5464. IfNotTrue(Goto(NoNews))
  5465. SetEqual(a=1)
  5466. Lines(NEWS.TXT)
  5467. SetEqual(/nvlines=%ARESP%) ; keep track of lines
  5468. SetEqual(e=0) ; e = current line of file
  5469. Inpopen(NEWS.TXT)
  5470. Say(&14&Reading News File...)
  5471.  
  5472. *FindBegin
  5473. Kill(%nv%newstemp%NEWS%VAR%A.0)  ; data file for current newsletter article
  5474. Kill(%nv%newstemp%HDR%VAR%A.0)   ; header file for current newsletter article
  5475. DO
  5476.  If(&e)>=(%NV%LINES%) then Goto(Fin)
  5477.  Inpread
  5478.  Inc(e)
  5479.  SetEqual(b=%ARESP%)
  5480.  Find(&b,/-)
  5481.   ; search for article top marker
  5482.  If(%ARESP%)<>(0) then Goto(Continue)
  5483. EOFLOOP
  5484. *Fin
  5485. InpClose
  5486. If(&a)=(1) then Goto(NoArts)
  5487. errortrap
  5488. Say(&CR&&4&-- No More Articles --)
  5489. InpClose
  5490. addvar(%var%a+-1=a)
  5491. SetEqual(/nvarticles=%VAR%A)
  5492. setnv(highart=%var%a)
  5493. Return
  5494.  
  5495. *Continue
  5496. SetEqual(d=1)
  5497. DO
  5498.  Inpread
  5499.  Inc(e)
  5500.  SetEqual(b=%ARESP%)
  5501.  Find(&b,/*) ; search for article end marker
  5502.  NotIf(%ARESP%)=(0) then
  5503.    Back(26)
  5504.    Say(--PARSED ARTICLE %VAR%A--*)
  5505.    Inc(a) ; a is number of articles
  5506.    Goto(FindBegin)
  5507.   endif
  5508.  If(%ARESP%)=(0) then
  5509.    If(&d)>(2) then AppendTo(%nv%newstemp%NEWS%VAR%A.0,%VAR%B)
  5510.    If(&d)<=(2) then AppendTo(%nv%newstemp%HDR%VAR%A.0,%VAR%B)
  5511.   endif
  5512.  Inc(d)
  5513. EOFLOOP
  5514. Say(&CR&&12&ERROR! Could not locate end of article!)
  5515. SetEqual(/nvnews=)
  5516. SecPause(2)
  5517. Return
  5518.  
  5519. *NoNews
  5520. Say(&CR&&12&The Newsletter Data File (%nv%news%.%nv%newsext%) cannot be located!)
  5521. Say(Creating New Article...)
  5522. ;SetNv(news=)
  5523. ;SecPause(1)
  5524. Return
  5525.  
  5526. *NoArts
  5527. Say(&CR&&12&ERROR! There are no recognizable articles in %nv%news%.%nv%newsext%! Aborting...)
  5528. SetNv(news=)
  5529. SecPause(2)
  5530. Return
  5531. CCMSGSCTL
  5532.   *ccstuff
  5533.    If(%NV%CC1%)=() then Return
  5534.    SetEqual(q=1)
  5535.    ;kill(cc1.%node%)
  5536.    ;cc1.%node% already exists from the CC: at the bottom of the original msg
  5537.    ;capture(cc1.%NODE%)
  5538.    DO
  5539.     SetEqual(j=nv%ccnum%VAR%Q%)
  5540.     SetEqual(i=nv%cc%VAR%Q%)
  5541.     Prc(%%VAR%J)
  5542.     SetEqual(j=%ARESP%)
  5543.     Prc(%%VAR%I)
  5544.     SetEqual(i=%ARESP%)
  5545.     If(&i)=() then Goto(IncItAndGo)
  5546.     ;if blank, it has been deleted by the Edit CC List option
  5547.  
  5548.     SetEqual(/nvccing=1)
  5549.     SetEqual(/nvaddressee=%VAR%I)
  5550.     SetEqual(/nvskip=0)
  5551.     LoadSub(control\macros\CCLine.ctl)
  5552.  
  5553.  
  5554.     nicequal(a=%NV%ORIGADDR%)
  5555.     zap(%pbtemp%cc.%NODE%, [ CARBON COPY MESSAGE ])
  5556.     appendto(%pbtemp%cc.%NODE%, ■ Original Message Addressed to %var%a)
  5557.     appendto(%pbtemp%cc.%NODE%,)
  5558.     loadexec(command.com,/c copy %pbtemp%cc.%NODE%+%pbtemp%cc1.%NODE%+%pbtemp%ccline1.%NODE% %pbtemp%cc.%NODE% >nul)
  5559.     inittxt
  5560.     Lines(%pbtemp%cc.%NODE%)
  5561.     import(%pbtemp%cc.%NODE%,,1,%ARESP%)  ; used to be 1,100
  5562.  
  5563.     ;NotIf(&z)=(15) then writemsg(/:LASTMSG/,%var%i,%NAME%,%var%b,%var%j,%var%k,0,%var%v,%var%x)
  5564.     ;If(&z)=(15) then writemsg(/:LASTMSG/,%var%i,%NAME%,%var%b,%var%j,%var%k,%var%y,%var%v,%var%x)
  5565.  
  5566.     NiceSay(&11& ■ &3&Sending Carbon Copy to %VAR%I)    
  5567.     NotIf(&z)=(15) then writemsg(/:LASTMSG/,%var%i,%NV%ADDRESSER%,%nv%subject%,%var%j,%nv%msgpvt%,0,%var%v,%var%x)
  5568.     If(&z)=(15) then writemsg(/:LASTMSG/,%var%i,%NV%ADDRESSER%,%nv%subject%,%var%j,%nv%msgpvt%,%var%y,%var%v,%var%x)
  5569.     SetEqual(a=/:MSENT/)  ; # of messages sent/entered
  5570.     Inc(a)                ; increment # of messages sent in user record
  5571.     SetEqual(/MSENT=%VAR%A)
  5572.  
  5573.     *IncItAndGo
  5574.     Inc(q)
  5575.     If(&q)>(%NV%CCs%) then Return
  5576.    LOOP
  5577.    setequal(/nvccing=)
  5578.    SetEqual(/nvorigaddr=)
  5579.    SetEqual(/nvskip=)
  5580.    Enter
  5581.    Return
  5582. ENTERCTLH&loadsub(control\exitwip.ctl)
  5583.  
  5584.   *enter
  5585. SetNv(attfname=)
  5586. freespace(%CDRIVE%:)
  5587. if (%ARESP%)<(%MINSPACE%) then loadmem (control\macros\nospace.ctl)
  5588. setequal(k=0)
  5589. setequal(y=0)
  5590. setequal(d=1)
  5591. SetEqual(/nvcc1=)
  5592. SetEqual(/nvccs=0)
  5593. ;if %nv%cc1% is not blank, it contains the name of the first person to 
  5594. ;carbon copy the message to
  5595. SetEqual(z=0)
  5596. ;%var%z is the total number of people to cc the message to. If 0, then
  5597. ;it will not be cced.
  5598. SetEqual(/nvATTFNAME=)  ; need to clear attach vars to prevent accidentally
  5599. SetEqual(/nvattext=)   ; attaching the same file to another message
  5600. SetEqual(j=nv%ccnum%VAR%Z%)
  5601. SetEqual(x=nv%cc%VAR%Z%)
  5602. say(&15&)
  5603. setactivity(Message Entry)
  5604. inittxt
  5605.  
  5606. *ps1
  5607. delimit( ,;)
  5608. SetActivity (Message Entry)
  5609. Seek(INTMSGS\%USERN%.HDR) ; look for interrupted message
  5610. IfTrue(Goto(IntMsg))
  5611.  
  5612. *GoAhead
  5613. ;---PowerStak Block 1 (with modifications)
  5614. len(%nv%queue%)
  5615. notif (%aresp%) = (0) then 
  5616.         setequal(/resp=%nv%queue%)
  5617.         SetEqual(/nvqueue=)
  5618.         Notif(/:EXPERT/)=(Y) then Say (&CR&&15&To whom do you want to send this message?&12&: &14&*)
  5619.         if(/:EXPERT/)=(Y) then Say (&CR&&15&       To&12&: &14&*)
  5620.         NiceSay(%RESP%*)
  5621.         Goto(stk)  ; if all dequeued, continue on...
  5622. endif
  5623. ;---PowerStak Block 1 End--- (with modifications)
  5624.  
  5625. Say(&14&Pressing [ENTER] skips the current question, if possible, or otherwise aborts.&15&)
  5626.  
  5627. if (%AREAFPVT%)=(N) then
  5628.   say(&CR&&3&Enter '&11&ALL&3&' to send to everyone; *)
  5629.   if(%SEC%)=(100) then say()
  5630.  endif
  5631. If (%SEC%)=(100) then
  5632.   Say(&CR&&3&Enter '&11&@NAME@&3&' to send this message to everyone as if individually sent.)
  5633.   Say(Enter '&11&@SEC@&14&x&11&@&3&' to send this message to all users with security '&14&x&3&'.)
  5634.   say(&3&Enter '&11&/FIND&3&' to search for a user on the BBS.)
  5635.  endif
  5636. Notif(/:EXPERT/)=(Y) then cAsk (%NOCR%%CRON%&CR&&15&To whom do you want to send this message?&12&: &14&*)
  5637. if(/:EXPERT/)=(Y) then cAsk (%NOCR%%CRON%&CR&&15&       To&12&: &14&*)
  5638. ;---PowerStak Block 2
  5639.  
  5640. *stk
  5641. killperc
  5642. Get(%RESP%,1,1)
  5643. If(%ARESP%)=(/) then
  5644.   Jump(Anywhere)
  5645.   Goto(ps1)
  5646.  endif
  5647. If(%ARESP%)=(?) then
  5648.   SetNv(Helpoption=66)
  5649.   Jump(OlHelp)
  5650.   Goto(ps1)
  5651.  endif
  5652. Goto(Stk2)
  5653. setequal(a=%resp%)
  5654. DEQUEUE(a)
  5655. setequal(/nvqueue=%var%a)
  5656. setequal(/resp=%aresp%)
  5657. ;---PowerStak Block 2 End---
  5658. *Stk2
  5659. MenuEqual(/RESP=%RESP%)
  5660. SetEqual(/nvaddresser=/:name/)
  5661. if (%msgaliases%)=(Y) then
  5662.   setequal(/nvaddresser=%name%)
  5663.   if (/:alias/)<>() then setequal(/nvaddresser=/:alias/)
  5664.   endif
  5665. if (%RESP%)=(SYSOP) then jump (sysn)
  5666. *bk1
  5667. if (%resp%)=(<CR>) then linefeed(1)
  5668. if (%RESP%)=(<CR>) then goto (doret)
  5669. ;Get(%RESP%,1,1)
  5670. ;If(%ARESP%)=(/) then Goto(Anywhere)
  5671. ;If(%ARESP%)=(?) then Goto(OlHelp)
  5672. setequal(a=%RESP%)
  5673. SetEqual(/nvaddressee=%RESP%)
  5674. setequal(c=0)
  5675. if (%RESP%)=(ALL) then if (%AREAFPVT%)=(N) then goto (back)
  5676. if (%RESP%)=(ALL) then goto (nall)
  5677. if (%RESP%)=(?) then goto (finduser)
  5678. setequal(g=%NAME%)
  5679. upcase(g)
  5680. seekfile(bad.to,%VAR%G;%RESP%)
  5681. iftrue(goto(doret))
  5682. If(%HANDLE%)=(Yes) then SeekType(a)
  5683. If(%HANDLE%)=(No) then SeekType(n)
  5684. seekuser(%RESP%)
  5685. ;setequal(c=%NDNUMB%)
  5686. setequal(/nvtousernum=%NDNUMB%)
  5687. ifnottrue(goto (notfound))
  5688. ;SetNv(addressee=%NDNAME%)  ; if aliases enabled, you will need real name
  5689.  
  5690. *Back
  5691. NotIf(/:EXPERT/)=(Y) then cAsk (%CRON%&CR&&15&              What is this message about?&12&: &14&*)
  5692. If(/:EXPERT/)=(Y) then cAsk (%CRON%&CR&&15&Regarding&12&: &14&*)
  5693. killperc
  5694. if (%RESP%)=(<CR>) then goto (doret)
  5695. Get(%RESP%,1,1)
  5696. If(%ARESP%)=(?) then
  5697.   SetNv(helpoption=67)
  5698.   Jump(Olhelp)
  5699.   Goto(Back)
  5700.  endif
  5701. If(%ARESP%)=(/) then
  5702.   Jump(Anywhere)
  5703.   Goto(back)
  5704.  endif
  5705. ;SetEqual(b=%RESP%)
  5706. SetEqual(/nvsubject=%RESP%)
  5707. Say()
  5708.  
  5709.    *back2
  5710. Setfill([ENTER] quits)
  5711. NotIf(/:EXPERT/)=(Y) then CMenuAsk (%NOCR%%CRON%&15&     Send a copy of this message to whom?&12&: &14&*)
  5712. If(/:EXPERT/)=(Y) then CMenuAsk (%NOCR%%CRON%&15&       CC&12&: &14&*)
  5713.  
  5714. If(%RESP%)=([ENTER] QUITS) then Say(             )
  5715.  
  5716. If(%RESP%)=([ENTER] QUITS) then Goto(StEnter)
  5717. if (%RESP%)=(<CR>) then say()
  5718. If(%RESP%)=(<CR>) then Goto(StEnter)
  5719. Get(%RESP%,1,1)
  5720. If(%ARESP%)=(?) then
  5721.   SetNv(HelpOption=124)
  5722.   Jump(olhelp)
  5723.   Goto(back2)
  5724.  endif
  5725. If(%ARESP%)=(/) then
  5726.   Jump(Anywhere)
  5727.   Goto(back2)
  5728.  endif
  5729. If(%RESP%)=(SYSOP) then Jump(SysN)
  5730. Say()
  5731. If(%RESP%)=(%NV%ADDRESSEE%) then Goto(AlreadyOnList)
  5732. SetEqual(/nvcheck=%RESP%)
  5733. Jump(CheckDup)
  5734. SetEqual(/nvcheck=)
  5735.  
  5736. killperc
  5737. if (%RESP%)=(SYSOP) then jump (sysn)
  5738.  
  5739. if (%resp%)=(<CR>) then linefeed(1)
  5740. if (%RESP%)=(<CR>) then goto (doret)
  5741. Inc(z)
  5742. SetEqual(j=nv%ccnum%VAR%Z%)
  5743. SetEqual(x=nv%cc%VAR%Z%)
  5744.  
  5745. setequal(/nvcc%var%z=%RESP%)
  5746. setequal(/nvccnum%var%z=0)
  5747. if (%RESP%)=(ALL) then if (%AREAFPVT%)=(N) then goto (back)
  5748. if (%RESP%)=(ALL) then goto (nall)
  5749. if (%RESP%)=(?) then goto (finduser)
  5750. SetEqual(/nvme=%VAR%B)
  5751. SetEqual(b=%RESP%)
  5752. ;Find(&b,,)
  5753. ;**** SHOULD BE A COMMA INSTEAD OF SEMICOLON, BUT IT ISN'T WORKING YET
  5754. ;NotIf(%ARESP%)=(0) then 
  5755. ;  If(%RESP%)=(,) then Goto(StEnter)
  5756.   ;**** SHOULD BE A COMMA INSTEAD OF SEMICOLON, BUT IT ISN'T WORKING YET
  5757.   SetEqual(/nvccnum%var%z=-1)
  5758. ;  AddVar(%ARESP%+-1=w)
  5759. ;  Get(&b,1,%VAR%W)
  5760.   ;Get(%RESP%,1,%VAR%W)
  5761. ;  SetEqual(/nvcc%var%z=%ARESP%)
  5762.    SetEqual(/nvcc%var%z=%VAR%B)
  5763. ; endif
  5764. SetEqual(b=%NV%ME%)
  5765. SetEqual(/nvme=)
  5766. setequal(g=%NAME%)
  5767. upcase(g)
  5768. seekfile(bad.to,%VAR%G;%RESP%)
  5769. iftrue(goto (doret))
  5770.  
  5771. Prc(%%VAR%J)
  5772. ;NotIf(%NV%CCNUM%%VAR%Z%)=(-1) then Goto(NormFin)
  5773. NotIf(%ARESP%)=(-1) then Goto(NormFin)
  5774. Prc(%%VAR%X)
  5775. ;seekuser(%NV%CC%%var%z%)
  5776. SeekUser(%ARESP%)
  5777. ifnottrue(goto (notfound2))
  5778.  
  5779. setequal(/nvccnum%var%z=%NDNUMB%)
  5780. Goto(back2)
  5781.  
  5782. *NormFin
  5783. Prc(%%VAR%X)
  5784. ;seekuser(%NV%CC%%var%z%)
  5785. SeekUser(%ARESP%)
  5786.  
  5787. ifnottrue(goto (notfound2))
  5788.  
  5789. setequal(/nvccnum%var%z=%NDNUMB%)
  5790.  
  5791.  
  5792.  
  5793.   *stenter
  5794. if (%AREAPVT%)=(N) then goto (stenter1)
  5795. if (%AREAFPVT%)=(Y) then goto (stenter1)
  5796. setnv(msgpvt=N)
  5797. if (%NV%ADDRESSEE%)=(ALL) then goto (stenter1)
  5798. say(&15&Would you like to make this a private message? (&12&Y&15&/&12&N&15&)&14&*)
  5799. back(4)
  5800. yesnoask(*)
  5801. setnv(msgpvt=%RESP%)  ; Set Private Message Flag
  5802.         
  5803.   *stenter1
  5804. SetEqual(/nvccs=%VAR%Z)
  5805. loadmem(control\macros\menter.ctl)
  5806.  
  5807. *nall
  5808. say(&CR&&CR&&12&Messages cannot be sent to "ALL" in a private mail area.&CR&)
  5809. enter
  5810. goto (doret)
  5811.  
  5812.   *notfound
  5813. if (%SYSSEC%)=(%SEC%) then
  5814.   if (%RESP%)=(@NAME@) then goto (Back)
  5815.   Get(%RESP%,1,5)
  5816.   If(%ARESP%)=(@SEC@) then Goto(Back)
  5817.  endif
  5818. if (%RESP%)=(@NAME@) then goto (doret)
  5819. Get(%RESP%,1,5)
  5820. if(%ARESP%)=(@SEC@) then goto (doret)
  5821. If (%MSGFNET%)=(Y) then goto (back)
  5822. ;don't bother confirming the name if the messages is being sent by NetMail.
  5823. say(&CR&&14&       That name could not be found.  )
  5824. setequal(c=0)
  5825. say(       &15&Would you like to send the message anyway? (&12&Y&15&/&12&N&15&)&14&*)
  5826. back(4)
  5827. yesnoask(*)
  5828. if (%RESP%)=(No) then goto (doret)
  5829. goto (back)
  5830.  
  5831.   *notfound2
  5832. if (%RESP%)=(@NAME@) then goto (doret)
  5833. If (%MSGFNET%)=(Y) then goto (back2)
  5834. ;don't bother confirming the name if the messages is being sent by NetMail.
  5835. say(&CR&&14&       That name could not be found.  )
  5836. setequal(c=0)
  5837. say(       &15&Would you like to send a carbon copy to this person anyway? (&12&Y&15&/&12&N&15&)&14&*)
  5838. back(4)
  5839. yesnoask(*)
  5840. if (%RESP%)=(Yes) then
  5841.    setequal(/nvccnum%var%z=%NDNUMB%)
  5842.    goto(back2)
  5843.   endif
  5844. AddVar(%VAR%Z+-1=z)
  5845. Say(&12&&CR&       The last carbon copy request has been cancelled.&CR&)
  5846. goto (back2)
  5847.  
  5848.   *finduser
  5849. Say()
  5850. loadsub(control\macros\find.ctl)
  5851. goto (Enter)
  5852.  
  5853.   *sysn
  5854. len(%UARESP%)
  5855. back(%ARESP%)
  5856. setequal(/resp=%SYSOP%)
  5857. say(%SYSOP%*)
  5858. ret
  5859.  
  5860.   *alreadyonlist
  5861. Say(&CR&&12&The last carbon copy request has been cancelled-- this message is already)
  5862. Say(being sent to *)
  5863. NiceSay(%RESP%.&CR&)
  5864. ;SecPause(2)
  5865. Goto(back2)
  5866.  
  5867.   *CheckDup
  5868. If(&z)<(1) then Ret ;z is ccnums. if only 1 cc, there cannot be a duplicate
  5869. SetEqual(/nvq=%VAR%Q)
  5870. SetEqual(q=1)
  5871. *Dup2
  5872. SetEqual(x=nv%cc%VAR%Q%)
  5873. Prc(%%VAR%X)
  5874. If(%ARESP%)=(%NV%CHECK%) then Goto(AlreadyOnList)
  5875. Inc(q)
  5876. If(&q)>(&z) then Ret
  5877. Goto(Dup2)
  5878.  
  5879. *Anywhere
  5880. Len(%RESP%)
  5881. If(%ARESP%)<(2) then Goto(Bsel)
  5882. LoadSub(control\macros\anywhere.ctl)
  5883. Ret
  5884.  
  5885. *OlHelp
  5886. SetNv(AtPrompt=Yes)
  5887. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  5888. Ret
  5889.  
  5890. *IntMsg
  5891. Say(&CR&&14&You recently lost carrier while entering a message. The interrupted message)
  5892. Say(has been saved to disk. You may continue this message if you wish. If you do)
  5893. Say(not continue it, it will not be erased. However, if you drop carrier while)
  5894. Say(entering another message, you will lose the first interrupted message.)
  5895. Say(&CR&&15&Do you wish to continue the interrupted message? (&12&Y&15&/&12&N&15&)&14&*)
  5896. Back(4)
  5897. YesNoAsk(*)
  5898. If(%RESP%)=(No) then Goto(GoAhead)
  5899. SetNv(queue=) ; empty queue if continuing message
  5900. Seek(INTMSGS\%USERN%.MES)
  5901. IfNotTrue(Goto(IntProb))
  5902. Inpopen(INTMSGS\%USERN%.HDR)
  5903. Inpread
  5904. SetNv(addressee=%ARESP%)
  5905. Inpread
  5906. SetNv(tousernum=%ARESP%)
  5907. Inpread
  5908. SetNv(subject=%ARESP%)
  5909. Inpread
  5910. SetNv(addresser=%ARESP%)
  5911. Inpread
  5912. SetNv(msgpvt=%ARESP%)
  5913. Inpread
  5914. SetNv(orignum=%ARESP%)
  5915. Inpread
  5916. SetNv(net=%ARESP%)
  5917. Inpread
  5918. SelArea(%ARESP%)
  5919. InpClose
  5920. EnufSec(%AREASEC%)
  5921. IfNotTrue(Goto(TooLow))
  5922. Import(INTMSGS\%USERN%.MES,,1,100)
  5923. Kill(INTMSGS\%USERN%.HDR)
  5924. Kill(INTMSGS\%USERN%.MES)
  5925. Log(--,User continued interrupted message)
  5926. LoadSub(control\macros\menter.ctl,Goto(Iadd))
  5927. goto (doret)
  5928.  
  5929. *IntProb
  5930. Say(&CR&&12&ERROR: The interrupted message was not properly stored on disk! It cannot be)
  5931. Say(continued.&CR&)
  5932. SecPause(2)
  5933. Kill(INTMSGS\%USERN%.HDR)
  5934. goto (doret)
  5935.  
  5936. *TooLow
  5937. Say(&CR&&12&Your security level is too low to send the interrupted message to the)
  5938. Say(conference for which it was originally intended!)
  5939. SelArea(/:LASTMSG/)
  5940. SecPause(2)
  5941. goto (doret)
  5942.  
  5943. *doret
  5944. if (%nv%wipe%)=() then return
  5945. setnv(wipe=)
  5946. setnv(wipmode=1)
  5947. return
  5948. RESETCTL╫
  5949. *Reset
  5950. setequal(>NAME=%var%D)
  5951. setequal(>LAST=%DATE%)
  5952. setequal(>LASTCHK=%DATE%)
  5953. setequal(>FROM=)
  5954. SetEqual(>STREET=)
  5955. SetEqual(>PASS=)
  5956. SetEqual(>PHONE=)
  5957. SetEqual(>WORK=)
  5958. SetEqual(>BIRTH=)
  5959. SetEqual(\SEC=%NEWSEC%) ; set security level to new user security
  5960. SetEqual(\PROTOCOL=N)
  5961. SetEqual(>COMP=)
  5962. SetEqual(>SCREENLEN=24)
  5963. SetEqual(\DEFAVAIL=Y)
  5964. SetEqual(\ALIAS=)
  5965. SetEqual(\COUNTRY=)
  5966. SetEqual(\COMPANY=)
  5967. SetEqual(\TITLE=)
  5968. SetEqual(\MHSNAME=)
  5969. SetEqual(\STREET1=)
  5970. SetEqual(\STREET=)
  5971. SetEqual(\FROM=)
  5972. SetEqual(\UPLOADS=0)
  5973. SetEqual(\DOWNLOADS=0)
  5974. SetEqual(\KDOWN=0)
  5975. SetEqual(\KUP=0)
  5976. SetEqual(\GRAPHICS=ASCII)
  5977. SetEqual(\SCREENLEN=24)
  5978. SetEqual(\CUTOFF=0)
  5979. SetEqual(\CHATREQ=0)
  5980. SetEqual(\MINSU=0)
  5981. SetEqual(\BYTESTODAY=0)
  5982. SetEqual(\LASTT=%TIME%) ; set last time on to current time
  5983. SetEqual(\LASTDOWN=1)
  5984. SetEqual(\LASTUP=1)
  5985. SetEqual(\LASTMSG=1)
  5986. SetEqual(\LEFT=%NEWTIME%) ; set time left to new user time limit
  5987. SetEqual(\TIMESON=0)
  5988. SetEqual(\FIRST=%DATE%)
  5989. SetEqual(\DOORSE=0)
  5990. SetEqual(\SUBBAL=0)
  5991. SetEqual(\SUB=No)
  5992. SetEqual(\TL=0)
  5993. SetEqual(\FRATIO=0)
  5994. SetEqual(\DAILYDL=0)
  5995. SetEqual(\DAILYUL=0)
  5996. SetEqual(\NBAL=0)
  5997. SetEqual(\WAIT=No)
  5998. SetEqual(\LO=No)
  5999. SetEqual(\MSENT=0)
  6000. SetEqual(\SUBDATE=%DATE%) ; date subscription expires
  6001. SetEqual(\EXPTO=0)
  6002. SetEqual(\EXPSEC=%NEWSEC%)
  6003. SetEqual(\EXPERT=No)
  6004. SetEqual(\PSYS=No)  ; Sysop logon page
  6005. SetEqual(\ITIME=No) ; no time limit
  6006. SetEqual(\ANSMUSIC=No)
  6007.  
  6008. SetEqual(\MEMO=)
  6009. SetEqual(\MEMO2=)
  6010. SetEqual(\MEMO3=)
  6011. SetEqual(\MEMO4=)
  6012. SetEqual(\MEMO5=)
  6013. SetEqual(\MEMO6=)
  6014.  
  6015. SetEqual(\INT1=0)
  6016. SetEqual(\INT2=0)
  6017. SetEqual(\INT3=0)
  6018. SetEqual(\INT4=0)
  6019. SetEqual(\INT5=0)
  6020. SetEqual(\INT6=0)
  6021.  
  6022. SetEqual(\CHR1=)
  6023. SetEqual(\CHR2=)
  6024. SetEqual(\CHR3=)
  6025.  
  6026. SetEqual(\FLAG01=No)
  6027. SetEqual(\FLAG02=No)
  6028. SetEqual(\FLAG03=No)
  6029. SetEqual(\FLAG04=No)
  6030. SetEqual(\FLAG05=No)
  6031. SetEqual(\FLAG06=No)
  6032. SetEqual(\FLAG07=No)
  6033. SetEqual(\FLAG08=No)
  6034. SetEqual(\FLAG09=No)
  6035. SetEqual(\FLAG10=No)
  6036. SetEqual(\FLAG11=No)
  6037. SetEqual(\FLAG12=No)
  6038. SetEqual(\FLAG13=No)
  6039. SetEqual(\FLAG14=No)
  6040. SetEqual(\FLAG15=No)
  6041. SetEqual(\FLAG16=No)
  6042. SetEqual(\FLAG17=No)
  6043. SetEqual(\FLAG18=No)
  6044. SetEqual(\FLAG19=No)
  6045. SetEqual(\FLAG20=No)
  6046. SetEqual(\FLAG20=No)
  6047. SetEqual(\FLAG21=No)
  6048. SetEqual(\FLAG22=No)
  6049. SetEqual(\FLAG23=No)
  6050. SetEqual(\FLAG24=No)
  6051. SetEqual(\FLAG25=No)
  6052. SetEqual(\FLAG26=No)
  6053. SetEqual(\FLAG27=No)
  6054. SetEqual(\FLAG28=No)
  6055. SetEqual(\FLAG29=No)
  6056. SetEqual(\FLAG30=No)
  6057. SetEqual(\FLAG31=No)
  6058. SetEqual(\FLAG32=No)
  6059. SetEqual(\FLAG33=No)
  6060. SetEqual(\FLAG34=No)
  6061. SetEqual(\FLAG35=No)
  6062. SetEqual(\FLAG36=No)
  6063. SetEqual(\FLAG37=No)
  6064. SetEqual(\FLAG38=No)
  6065. SetEqual(\FLAG39=No)
  6066. SetEqual(\FLAG40=No)
  6067. SetEqual(\FLAG41=No)
  6068. SetEqual(\FLAG42=No)
  6069. SetEqual(\FLAG43=No)
  6070. SetEqual(\FLAG44=No)
  6071. SetEqual(\FLAG45=No)
  6072. SetEqual(\FLAG46=No)
  6073. SetEqual(\FLAG47=No)
  6074. SetEqual(\FLAG48=No)
  6075. SetEqual(\FLAG49=No)
  6076. SetEqual(\FLAG50=No)
  6077. SetEqual(\FLAG51=No)
  6078. SetEqual(\FLAG52=No)
  6079. SetEqual(\FLAG53=No)
  6080. SetEqual(\FLAG54=No)
  6081. SetEqual(\FLAG55=No)
  6082. SetEqual(\FLAG56=No)
  6083. SetEqual(\FLAG57=No)
  6084. SetEqual(\FLAG58=No)
  6085. SetEqual(\FLAG59=No)
  6086. SetEqual(\FLAG60=No)
  6087. SetEqual(\FLAG61=No)
  6088. SetEqual(\FLAG62=No)
  6089. SetEqual(\FLAG63=No)
  6090. SetEqual(\FLAG64=No)
  6091. SetEqual(\FLAG65=No)
  6092. SetEqual(\FLAG66=No)
  6093. SetEqual(\FLAG67=No)
  6094. SetEqual(\FLAG68=No)
  6095. SetEqual(\FLAG69=No)
  6096. SetEqual(\FLAG70=No)
  6097. SetEqual(\FLAG71=No)
  6098. SetEqual(\FLAG72=No)
  6099. SetEqual(\FLAG73=No)
  6100. SetEqual(\FLAG74=No)
  6101. SetEqual(\FLAG75=No)
  6102. SetEqual(\FLAG76=No)
  6103. SetEqual(\FLAG77=No)
  6104. SetEqual(\FLAG78=No)
  6105. SetEqual(\FLAG79=No)
  6106. SetEqual(\FLAG80=No)
  6107. SetEqual(\FLAG81=No)
  6108. SetEqual(\FLAG82=No)
  6109. Return
  6110. RESETACTL
  6111. ;this subroutine resets active memory variables
  6112. *ResetActive
  6113. setequal(/NAME=%var%D)
  6114. setequal(/LAST=%DATE%)
  6115. setequal(/LASTCHK=%DATE%)
  6116. setequal(/FROM=)
  6117. SetEqual(/STREET=)
  6118. SetEqual(/PASS=)
  6119. SetEqual(/PHONE=)
  6120. SetEqual(/WORK=)
  6121. SetEqual(/BIRTH=)
  6122. SetEqual(/SEC=%NEWSEC%) ; set security level to new user security
  6123. SetEqual(/PROTOCOL=N)
  6124. SetEqual(/COMP=)
  6125. SetEqual(/SCREENLEN=24)
  6126. SetEqual(/DEFAVAIL=Y)
  6127. SetEqual(/ALIAS=)
  6128. SetEqual(/COUNTRY=)
  6129. SetEqual(/COMPANY=)
  6130. SetEqual(/TITLE=)
  6131. SetEqual(/MHSNAME=)
  6132. SetEqual(/STREET1=)
  6133. SetEqual(/STREET=)
  6134. SetEqual(/FROM=)
  6135. SetEqual(/UPLOADS=0)
  6136. SetEqual(/DOWNLOADS=0)
  6137. SetEqual(/KDOWN=0)
  6138. SetEqual(/KUP=0)
  6139. ;used to be graphics
  6140. SetEqual(/SCREENLEN=24)
  6141. SetEqual(/CUTOFF=0)
  6142. SetEqual(/CHATREQ=0)
  6143. SetEqual(/MINSU=0)
  6144. SetEqual(/BYTESTODAY=0)
  6145. SetEqual(/LASTT=%TIME%) ; set last time on to current time
  6146. SetEqual(/LASTDOWN=1)
  6147. SetEqual(/LASTUP=1)
  6148. SetEqual(/LASTMSG=1)
  6149. SetEqual(/LEFT=%NEWTIME%) ; set time left to new user time limit
  6150. SetEqual(/TIMESON=0)
  6151. SetEqual(/FIRST=%DATE%)
  6152. SetEqual(/DOORSE=0)
  6153. SetEqual(/SUBBAL=0)
  6154. SetEqual(/SUB=No)
  6155. SetEqual(/TL=0)
  6156. SetEqual(/FRATIO=0)
  6157. SetEqual(/DAILYDL=0)
  6158. SetEqual(/DAILYUL=0)
  6159. SetEqual(/NBAL=0)
  6160. SetEqual(/WAIT=No)
  6161. ;SetEqual(/LO=No)
  6162. SetEqual(/MSENT=0)
  6163. SetEqual(/SUBDATE=%DATE%) ; date subscription expires
  6164. SetEqual(/EXPTO=0)
  6165. SetEqual(/EXPSEC=%NEWSEC%)
  6166. SetEqual(/EXPERT=No)
  6167. SetEqual(/PSYS=No)  ; Sysop logon page
  6168. SetEqual(/ITIME=No) ; no time limit
  6169. SetEqual(/ANSMUSIC=No)
  6170.  
  6171. SetEqual(/MEMO=)
  6172. SetEqual(/MEMO2=)
  6173. SetEqual(/MEMO3=)
  6174. SetEqual(/MEMO4=)
  6175. SetEqual(/MEMO5=)
  6176. SetEqual(/MEMO6=)
  6177.  
  6178. SetEqual(/INT1=0)
  6179. SetEqual(/INT2=0)
  6180. SetEqual(/INT3=0)
  6181. SetEqual(/INT4=0)
  6182. SetEqual(/INT5=0)
  6183. SetEqual(/INT6=0)
  6184.  
  6185. SetEqual(/CHR1=)
  6186. SetEqual(/CHR2=)
  6187. SetEqual(/CHR3=)
  6188.  
  6189. SetEqual(/FLAG01=No)
  6190. SetEqual(/FLAG02=No)
  6191. SetEqual(/FLAG03=No)
  6192. SetEqual(/FLAG04=No)
  6193. SetEqual(/FLAG05=No)
  6194. SetEqual(/FLAG06=No)
  6195. SetEqual(/FLAG07=No)
  6196. SetEqual(/FLAG08=No)
  6197. SetEqual(/FLAG09=No)
  6198. SetEqual(/FLAG10=No)
  6199. SetEqual(/FLAG11=No)
  6200. SetEqual(/FLAG12=No)
  6201. SetEqual(/FLAG13=No)
  6202. SetEqual(/FLAG14=No)
  6203. SetEqual(/FLAG15=No)
  6204. SetEqual(/FLAG16=No)
  6205. SetEqual(/FLAG17=No)
  6206. SetEqual(/FLAG18=No)
  6207. SetEqual(/FLAG19=No)
  6208. SetEqual(/FLAG20=No)
  6209. SetEqual(/FLAG20=No)
  6210. SetEqual(/FLAG21=No)
  6211. SetEqual(/FLAG22=No)
  6212. SetEqual(/FLAG23=No)
  6213. SetEqual(/FLAG24=No)
  6214. SetEqual(/FLAG25=No)
  6215. SetEqual(/FLAG26=No)
  6216. SetEqual(/FLAG27=No)
  6217. SetEqual(/FLAG28=No)
  6218. SetEqual(/FLAG29=No)
  6219. SetEqual(/FLAG30=No)
  6220. SetEqual(/FLAG31=No)
  6221. SetEqual(/FLAG32=No)
  6222. SetEqual(/FLAG33=No)
  6223. SetEqual(/FLAG34=No)
  6224. SetEqual(/FLAG35=No)
  6225. SetEqual(/FLAG36=No)
  6226. SetEqual(/FLAG37=No)
  6227. SetEqual(/FLAG38=No)
  6228. SetEqual(/FLAG39=No)
  6229. SetEqual(/FLAG40=No)
  6230. SetEqual(/FLAG41=No)
  6231. SetEqual(/FLAG42=No)
  6232. SetEqual(/FLAG43=No)
  6233. SetEqual(/FLAG44=No)
  6234. SetEqual(/FLAG45=No)
  6235. SetEqual(/FLAG46=No)
  6236. SetEqual(/FLAG47=No)
  6237. SetEqual(/FLAG48=No)
  6238. SetEqual(/FLAG49=No)
  6239. SetEqual(/FLAG50=No)
  6240. SetEqual(/FLAG51=No)
  6241. SetEqual(/FLAG52=No)
  6242. SetEqual(/FLAG53=No)
  6243. SetEqual(/FLAG54=No)
  6244. SetEqual(/FLAG55=No)
  6245. SetEqual(/FLAG56=No)
  6246. SetEqual(/FLAG57=No)
  6247. SetEqual(/FLAG58=No)
  6248. SetEqual(/FLAG59=No)
  6249. SetEqual(/FLAG60=No)
  6250. SetEqual(/FLAG61=No)
  6251. SetEqual(/FLAG62=No)
  6252. SetEqual(/FLAG63=No)
  6253. SetEqual(/FLAG64=No)
  6254. SetEqual(/FLAG65=No)
  6255. SetEqual(/FLAG66=No)
  6256. SetEqual(/FLAG67=No)
  6257. SetEqual(/FLAG68=No)
  6258. SetEqual(/FLAG69=No)
  6259. SetEqual(/FLAG70=No)
  6260. SetEqual(/FLAG71=No)
  6261. SetEqual(/FLAG72=No)
  6262. SetEqual(/FLAG73=No)
  6263. SetEqual(/FLAG74=No)
  6264. SetEqual(/FLAG75=No)
  6265. SetEqual(/FLAG76=No)
  6266. SetEqual(/FLAG77=No)
  6267. SetEqual(/FLAG78=No)
  6268. SetEqual(/FLAG79=No)
  6269. SetEqual(/FLAG80=No)
  6270. SetEqual(/FLAG81=No)
  6271. SetEqual(/FLAG82=No)
  6272. Return
  6273. VIEWCTL⌐; version= 0.99.01
  6274. ; View.ctl for PB2.0
  6275. ; Views RIP, ascii and ansi files.
  6276. clearscr
  6277. if (%GRAPHICS%)=(RIP) then
  6278.         say(!|*|J10|n2000|M08|fZKQO|b0K1IYOIS280P0002X000|W00|c05|=001EKF01|U0C1AZ6IY0I|1bUKJGYQNM00010000008NCC1701.BMP|#|#|#)
  6279.         defpause(!|y0000010U000000001a1a000000Marin|1B00000202YY050F000F010700000907000000|1U1EJG9QM82B00<>Stop<>S|1B00000202YY050F000F010700000907000000|1UB4JGJGM82600<>NonStop<>N|1B00000202YY050F000F010700000907000000|1UKUJGT6M87300<>Continue<>^M|#|#|#)
  6280.         say(RIPVIEW)
  6281. endif
  6282.   DefPif (s:stop,n:nonstop)
  6283.   view(%nv%viewme%)
  6284.   defpause()
  6285.   enter
  6286. if (%graphics%)=(RIP) then
  6287.   say(!|1K|*||Y00000100|#|#|#)
  6288. endif
  6289.   return
  6290. QWKNEWCTL¬
  6291. say(&11&                 Creating New File Listing... *)
  6292. zap(%pbtemp%QwkWork\newfiles.dat,New file list created for %name% on %date% at %time% (%BBS%))
  6293. appendto(%pbtemp%QwkWork\newfiles.dat,)
  6294. appendto(%pbtemp%QwkWork\newfiles.dat, -- Files added to system since /:lastchk/ follow --)
  6295. setequal(w=0)
  6296.  
  6297. *stlN
  6298. inc(w)
  6299. if (%var%w)>(%maxarea%) then goto (doneN)
  6300. selarea(%var%w)
  6301. enufsec(%areasec%)
  6302. ifnottrue(goto(nxareaN))
  6303. if (%msgiscan%)=(Y) then goto (pscN)
  6304. getf
  6305. ifnottrue(goto(nxareaN))
  6306. *pscN
  6307. listfile(AREAS\FAREA%VAR%W)
  6308. if (%farea%)<>(AREAS\FAREA%VAR%W) then goto (nxareaN)
  6309. setequal(t=0)
  6310.  
  6311. *stlFN
  6312. inc(t)
  6313. if (%var%t)>(%maxfarea%) then goto (nxareaN)
  6314. selfarea(%var%t)
  6315. enufsec(%filsec%)
  6316. ifnottrue(goto(stlFN))
  6317. jump (Twirl)
  6318. setnv(fn=%FILPATH%files.bbs)
  6319. if (%CD%)=(Yes) then setnv(fn=%CDPATH%%filarea%\files.bbs)
  6320. listlog()
  6321. appendto(%pbtemp%QwkWork\newfiles.dat,)
  6322. appendto(%pbtemp%QwkWork\newfiles.dat,%var%t: %filName%)
  6323. listlog(%pbtemp%QwkWork\newfiles.dat)
  6324. new(%nv%fn%,12,15,7,11,3,/:LASTCHK/,%var%k,%aresp%)
  6325. goto(stlFN)
  6326.  
  6327. *nxareaN
  6328. goto(stlN)
  6329.  
  6330.  
  6331. *doneN
  6332. listlog()
  6333. say(Done!)
  6334. setequal(/lastchk=%date%)
  6335. return
  6336.  
  6337. *twirl
  6338. INC(P)
  6339. if (%VAR%P)>(8) then setequal(P=1)
  6340. if (%VAR%P)=(1) then say(-*)
  6341. if (%VAR%P)=(2) then say(\*)
  6342. if (%VAR%P)=(3) then say(|*)
  6343. if (%VAR%P)=(4) then say(/*)
  6344. if (%VAR%P)=(5) then say(-*)
  6345. if (%VAR%P)=(6) then say(\*)
  6346. if (%VAR%P)=(7) then say(|*)
  6347. if (%VAR%P)=(8) then say(/*)
  6348. back(1)
  6349. ret
  6350. 125ACTLö
  6351. enufsec(50)
  6352. ifnottrue(return)
  6353. get (/:memo/,2,1)
  6354. setequal(a=%ARESP%)
  6355. len(/:memo3/)
  6356. notif (%aresp%)=(0) then setequal(a=/:memo3/)
  6357. say(Moving .EXE file ...*)
  6358.  
  6359. fcopy(\pbcopy\temp2\pb%VAR%A.EXE,\pbcopy\temp\temp\temp\pboard.exe)
  6360. notif (%ARESP%)=(0) then return
  6361.  
  6362. say( Done!&CR&Adding your serial number ...*)
  6363. get (/:memo/,3,10)
  6364. setequal(b=%ARESP%)
  6365. exec(\serial\serial.exe %VAR%A \pbcopy\temp\temp\temp\pboard.exe #%VAR%B /125A)
  6366. say( Done!&CR&Adding .EXE to batch (may take a while) ...*)
  6367. exec(\pbcopy\pc.exe \pbcopy\temp\temp\BBS2 \PBCOPY\temp\temp\temp\)
  6368. say( Done!&CR&Compressing batch ...*)
  6369. exec(\DOS\LHA.EXE U \PBCOPY\TEMP\MAIN2.LZH \PBCOPY\TEMP\TEMP\BBS2)
  6370. say( Done!&CR&Zipping file ...*)
  6371. exec(\DOS\PKZ110.EXE \PBCOPY\PB126-3.ZIP \PBCOPY\TEMP\MAIN2.LZH)
  6372. say( Done!&CR&Sending PB126-?.ZIP via ZMODEM ...)
  6373. say()
  6374. exec(\BBS\DSZ.COM port %PORT% speed %LBAUD% sz -m \PBCOPY\PB126-?.ZIP)
  6375.  
  6376. return
  6377. DOWNCTL╟!setnv(wipe=)
  6378. loadsub(control\exitwip.ctl)
  6379.         *down
  6380. setnv(q2=0)
  6381. setnv(r2=0)
  6382. SetActivity(Downloading Files)
  6383. if (%graphics%)=(RIP) then clearscr
  6384. Display (Display\DOWN)
  6385. Enter
  6386. Kill(%pbtemp%Batch.%NODE%)
  6387. setequal(b=Z)
  6388. if (%LOCAL%)=(TRUE) then goto (Pok)
  6389. If (/:PROTOCOL/)=(N) Then Goto (PickProt)
  6390. Display(Display\defuse)
  6391. SetEqual(b=/:PROTOCOL/)
  6392. Goto (pseled)
  6393.  
  6394.         *PickProt
  6395. Display (Display\DN-PROTS)
  6396. MenuAsk (%CRON%&15&Which transfer protocol would you like to use?&11&(or ENTER to Quit)&12&: &14&*)
  6397. Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  6398. NotIf (%ARESP%)=(0) Then Goto (badprot)
  6399. Get(%RESP%,1,1)
  6400. If(%ARESP%)=(?) then
  6401.   SetNv(helpoption=14) ; help on protocols
  6402.   Jump(OlHelp)
  6403.   Goto(PickProt)
  6404.  endif
  6405. If(%ARESP%)=(/) then
  6406.   Jump(Anywhere)
  6407.   Goto(PickProt)
  6408.  endif
  6409. find(&b,**)
  6410. iftrue(setequal(/resp=ZB))
  6411. BigIf(h:phelp,q:filesback,<CR>:filesback)
  6412. SetEqual(b=%RESP%)
  6413.         
  6414.         *pseled
  6415. Seek(protocol\%var%b-D.BT)    ;check to see If protocol exists..
  6416. IfTrue(Goto (Pok))
  6417.  
  6418.         *badprot
  6419. loadsub(control\macros\badsel.ctl)
  6420. Goto (PickProt)  ;go back and ask again..
  6421.         
  6422.         *Pok
  6423. setnv(protocol=%var%b)
  6424. Seek(%pbtemp%tagged.%NODE%)   ;see If there are any tagged files..
  6425. IfTrue(Goto (texist))
  6426. linefeed(1)
  6427. len(%var%b)   ;see If they picked a batch protocol
  6428. NotIf(%ARESP%)=(1) Then loadmem(control\BATCH.CTL)
  6429.         
  6430.         *fname
  6431. if (%nv%filename%)<>() then
  6432.   setwrap(%nv%filename%)
  6433.   setnv(filename=)
  6434.   endif
  6435. say(&15&Please enter the name of the file to download&12&: &15&(            )&14&*)
  6436. back(13)
  6437. menuask(%NOCR%%CRON%%LEN%12%*)
  6438.   if (%RESP%)=(<CR>) then say()
  6439.   if (%RESP%)=(<CR>) then goto (ret0)
  6440.   Get(%RESP%,1,1)
  6441.   If(%ARESP%)=(?) then
  6442.     SetNv(helpoption=13)
  6443.     Jump(OlHelp)
  6444.     Goto(Fname)
  6445.    endif
  6446.   len(%Resp%)
  6447.   back(%Aresp%)
  6448. adddef(.%DEFEXT%)  
  6449.   say(%Resp%&11&&CR&)
  6450. jump (pf)
  6451. setequal(d=%resp%)
  6452. find(&d,?)
  6453. iftrue(goto(wc0))
  6454. find(&d,*)
  6455. iftrue(goto(wc0))
  6456. Seekfall(%RESP%)
  6457. If (%ARESP%)=(INVALID) Then Goto (invfn)
  6458. If (%ARESP%)=(No) Then Goto (nothere)
  6459. If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf)
  6460. If (%RATIO%)=(NOT OK) Then Goto (badratio)
  6461. if (/:dailydl/)=(%dailyL%) then goto (badratio)
  6462. selFarea(%ARESP%)
  6463. enufsec(%filsec%)
  6464. ifnottrue(goto(notenuf))
  6465. size(%FILPATH%%RESP%)
  6466. say(&15&──────────────────> %RESP% Information:&11&&CR&)
  6467. if (%FREE%)=(Yes) then say(Free Download, *)
  6468. setequal(d=%aresp%)
  6469. addcomma(%aresp%)
  6470. say(%ARESP% bytes &3&(*)
  6471. ttime(%var%d)
  6472. say(%ARESP% at %BAUD% Baud))
  6473. cmpval(%TTIM%,/:LEFT/)
  6474. If (%ARESP%)=(No) Then If (%FREE%)=(No) Then Goto (notenuftime)
  6475. SetEqual(d=%RESP%)
  6476. say(&CR&&15&       Would you like to download this file? (&12&Y&15&/&12&N&15&)&14&*)
  6477. back(4)
  6478. yesnoask(*)
  6479. If (%RESP%)=(No) Then Goto (ex)
  6480. say(&15&Would you like us to log you off afterwards? (&12&Y&15&/&12&N&15&)&14&*)
  6481. back(4)
  6482. yesnoask(*)
  6483. SetEqual(m=%RESP%)
  6484. If (%LOCAL%)=(TRUE) Then Goto (lcl)
  6485. If (%CD%)=(Yes) then
  6486.   Say(&CR&&12&Copying File from CD-ROM Drive...*)
  6487.   FCopy(%FILPATH%%VAR%D,%PBTEMP%%VAR%D) ; copy file from CD to hard drive
  6488.   If(%ARESP%)=(ERROR) Then Goto(CopyError)
  6489.   SetNv(path=%PBTEMP%)
  6490.   Say(Done!)
  6491.   say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.)
  6492.  endif
  6493. If (%CD%)<>(Yes) then
  6494.   SetNv(path=%FILPATH%)
  6495.   say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.)
  6496.  endif
  6497. fixfile(protocol\%var%b-d.bt,%pbtemp%%var%b-d.bat)
  6498. initclock
  6499. setequal(n=%var%b)
  6500. exec(%pbtemp%%var%b-d.BAT│)
  6501. If(%CD%)=(Yes) then Kill(%PBTEMP%%VAR%D) ; kill file copied from CD to hd drive
  6502.  
  6503.         *success
  6504.  
  6505. setequal(t=)
  6506. NotIf (%ARESP%)=(0) Then Goto (aborted)
  6507.  
  6508. notif (%LOCAL%)=(FALSE) then setequal(t=TOG)
  6509. if (%LOCAL%)=(FALSE) then toglocal
  6510. xfertime
  6511. SetEqual(e=%ARESP%)
  6512. setequal(o=%xtime%)
  6513. size(%FILPATH%%var%d)
  6514. divvar(%ARESP%/%var%o=g)
  6515. cnvtk(%ARESP%)
  6516. addvar(%aresp%+/:bytestoday/=o)
  6517. setequal(/bytestoday=%var%o)
  6518. addvar(%ARESP%+/:KDOWN/=o)
  6519. SetEqual(/KDOWN=%var%o)
  6520. say(%BEEP%*)
  6521. log(--,%var%d Downloaded)
  6522. log(--,  Protocol: '%var%b'.)
  6523. log(--,Rate: %var%g CPS)
  6524. appendto(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  6525. SetEqual(a=/:DOWNLOADS/)
  6526. notif (%free%)=(Yes) then inc(a)
  6527. SetEqual(/DOWNLOADS=%var%a)
  6528. setequal(a=/:dailydl/)
  6529. notif (%free%)=(Yes) then Inc(a)
  6530. setequal(/dailydl=%var%a)
  6531. notif (%var%t)=(TOG) then toglocal
  6532. If (%FREE%)=(Yes) Then Goto (free)
  6533. *bfr
  6534. eline(20)
  6535. Display (Display\SUCCESS)
  6536. If (&m)=(Yes) Then Goto (autooff)
  6537.         
  6538.         *ex
  6539. selfarea(/:LASTDOWN/)
  6540. linefeed(1)
  6541. goto (ret0)
  6542.         
  6543.         *CopyError
  6544. Log(!!,File "%VAR%D" unable to be copied from "%FILPATH%" to "%PBTEMP%")
  6545. Beep(1)
  6546. Say(&CR&&14&ERROR: The selected file could not be copied from the CD-ROM Drive!)
  6547. Say(       Please notify the Sysop immediately!)
  6548. Say(&CR&&12&Aborting transfer...)
  6549. SecPause(2)
  6550. Goto(ex)
  6551.  
  6552.         *aborted
  6553. eline(20)
  6554. log(--,Download of %var%d aborted.)
  6555. display(display\aborted)
  6556. goto (ex)
  6557.  
  6558.         *lcl
  6559. menuask(&CR&&15&Please specify the path (e.g. C:\DLS\) for this file&12&: &14&*)
  6560. Get(%RESP%,1,1)
  6561. If(%ARESP%)=(?) then
  6562.   SetNv(helpoption=122) ; help on path to file
  6563.   Jump(OlHelp)
  6564.   Goto(Lcl)
  6565.  endif
  6566. If(%ARESP%)=(/) then
  6567.   Jump(Anywhere)
  6568.   Goto(lcl)
  6569.  endif
  6570. setequal(k=10)
  6571. initclock
  6572. setequal(n=LOCAL)
  6573. fcopy (%FILPATH%%var%d,%RESP%\%var%d)
  6574. notif (%ARESP%)=(0) then goto (aborted)
  6575. goto (success)
  6576.         
  6577.         *badratio
  6578. Display(Display\BADRATIO)
  6579. selfarea(/:LASTDOWN/)
  6580. linefeed(1)
  6581. goto (ret0)
  6582.  
  6583.         *autooff
  6584. loadmem(control\AutoOff.ctl)
  6585.  
  6586.         *free
  6587. log(--,Freefile downloaded, time refunded.)
  6588. size(%filpath%%var%d)
  6589. ttime(%ARESP%)
  6590. addvar(%TTIM%+/:LEFT/=t)
  6591. SetEqual(/LEFT=%var%t)
  6592. If (&m)=(Yes) Then Goto (autooff)
  6593. Goto (bfr)
  6594.         
  6595.         *texist
  6596. kill(%pbtemp%batch.%node%)
  6597. kill(%pbtemp%free.%node%)
  6598. len(%var%b)
  6599. If (%ARESP%)=(1) Then Goto (len1)
  6600. ;lview(tagged.%NODE%,10,7)
  6601. loadsub(control\macros\taglist.ctl)
  6602. say()
  6603. if (%nv%totaltime%)>(/:left/) then say(&11&You do not have enough time left to download all of these files.)
  6604. say(&15&Would you like to modify this list? (&12&Y&15&/&12&N&15&)&14&*)
  6605. back(4)
  6606. yesnoask(*)
  6607. if (%resp%)=(No) then goto (dodl)
  6608. setequal(/nvB=%var%b)
  6609. loadsub(control\macros\deltag.ctl,goto(prompt))
  6610. setequal(b=%nv%b%)
  6611. clearscr
  6612. goto(tExist)
  6613.  
  6614. *dodl
  6615. say(&CR&&15&Would you like to download the tagged files? (&12&Y&15&/&12&N&15&)&14&*)
  6616. back(4)
  6617. yesnoask(*)
  6618. say(&14&)
  6619. If (%RESP%)=(No) Then loadmem(control\BATCH.CTL,Goto (startbatch))
  6620. fcopy(%pbtemp%tagged2.%NODE%,%pbtemp%batch.%NODE%)
  6621. lines(%pbtemp%batch.%NODE%)
  6622. SetEqual(m=%NV%TotalTime%)
  6623. setequal(e=%aresp%)
  6624. SetEqual(w=%ARESP%)
  6625. setequal(s=%aresp%)
  6626. if (%nv%totalfree%)=() then goto (sdn)
  6627. addvar(%var%s+-%nv%totalfree%=s)
  6628. *sdn
  6629. setequal(q=0)
  6630.  
  6631. loadmem(control\BATCH.CTL,Goto (fname))
  6632.         *len1
  6633. say(&10&&CR&You have tagged files but they can only be downloaded with a BATCH)
  6634. say(protocol.  Please press &11&Enter&10& now to abort then choose a dIfferent protocol)
  6635. say(if you'd like to download your tagged files.&CR&)
  6636. Goto (fname)
  6637.         *notenuftime
  6638. Display(Display\NODLTIME)
  6639. goto (ret0)
  6640.         *phelp
  6641. Display(Display\help\prot,/:SEC/)
  6642. Goto (PickProt)
  6643.         *invfn
  6644. Display(Display\INVALID)
  6645. flushout
  6646. selfarea(/:LASTDOWN/)
  6647. Enter
  6648. goto (fname)
  6649.         *filesback
  6650. goto (ret0)
  6651.         *notenuf
  6652. Display (Display\fbadsec)
  6653. selfarea(/:LASTDOWN/)
  6654. goto (ret0)
  6655.         *NotHere
  6656. Display(Display\notfnd)
  6657. goto (fname)
  6658.         *moveerr
  6659. say(&CR&&14&The directory you specify is where the file already resides!&CR&)
  6660. goto (endmove)
  6661.  
  6662. *pf
  6663. inpopen(passfile.lst)
  6664. setequal(c=%RESP%,)
  6665. len(%VAR%C)
  6666. setequal(d=%ARESP%)
  6667. do
  6668. inpread
  6669. setequal(e=%ARESP%)
  6670. get(&e,1,%VAR%D)
  6671. if (%ARESP%)=(&C) then goto (ip)
  6672. eofloop
  6673. inpclose
  6674. ret
  6675. *ip
  6676. inpclose
  6677. say(&15&What is the password for this file?&12&: &14&*)
  6678. cgetpass(o)
  6679. say()
  6680. get(&e,%VAR%D,100)
  6681. setequal(a=,%RESP%)
  6682. setequal(f=%aresp%)
  6683. addvar(%var%d+-1=d)
  6684. get(&c,1,%var%d)
  6685. setequal(/resp=%aresp%)
  6686. if (%var%a)=(%var%f) then ret
  6687. goto (fname)
  6688.  
  6689. *OlHelp
  6690. LoadSub(olhelp\olhelp.ctl,goto(implementoption))
  6691. Ret
  6692.  
  6693. *Anywhere
  6694. Len(%RESP%)
  6695. If(%ARESP%)<(2) then Goto(Bsel)
  6696. LoadSub(control\macros\anywhere.ctl)
  6697. Ret
  6698.  
  6699. *bsel
  6700. loadsub(control\macros\badsel.ctl)
  6701. ;Clear Stack on Error!
  6702. ;---PowerStak Block 3
  6703. setequal(/nvqueue=)
  6704. ;---PowerStak Block 3 End
  6705. Ret
  6706.  
  6707. *ret0
  6708. setnv(protocol=)
  6709. if (%nv%wipe%)=() then return
  6710. setnv(wipe=)
  6711. setnv(wipmode=1)
  6712. return
  6713.  
  6714. *wc0
  6715. say(&CR&&14&Wildcards are not permitted with single-file protocols.  If you)
  6716. say(would like to use wildcards, please try selecting a Batch protocol.&CR&)
  6717. enter
  6718. goto(fname)
  6719. FINDCTLk    if (%nv%wipmode%)=(1) then loadmem(control\macros\wipfind.ctl)
  6720. ;USERFIND by Doug Vermes with modifications by Scott Brown
  6721. if (%graphics%)=(RIP) then clearscr
  6722.  
  6723. *UserFind
  6724.  
  6725. delimit( ,;)
  6726. SetActivity (User Find)
  6727. ;---PowerStak Block 1 (with modifications)
  6728. len(%nv%queue%)
  6729. notif (%aresp%) = (0) then 
  6730.         setequal(/resp=%nv%queue%)
  6731.         SetEqual(/nvqueue=)
  6732.         Say (&CR&&15&Enter Name of User: &12&*)
  6733.         NiceSay(%RESP%)
  6734.         Goto(stk)  ; if all dequeued, continue on...
  6735. endif
  6736. ;---PowerStak Block 1 End--- (with modifications)
  6737.  
  6738. *Main
  6739.  Say(&CR&&12&Press [ENTER] to Abort User Find)
  6740.  Say (&CR&&15&Enter Name of User: &12&*)
  6741.  MenuAsk(%CRON%*)
  6742.  *Stk
  6743.  If(%RESP%)=(<CR>) then Return
  6744.  Setnv(key=%RESP%)
  6745.  ;%NV%KEY% is Search Key
  6746.  Say(&CR&&15&Name                   From                     Last Date On   Last Time On)
  6747.  Say(&7&---------------------------------------------------------------------------)
  6748.  log (--,UserFind for:%Resp%)
  6749.  SetEqual(n=1) 
  6750.  ;user number to search from
  6751.  SetEqual(y=3)
  6752.  ;number of lines displayed
  6753.  
  6754. *Searching
  6755.  SeekUserP(%NV%KEY%,%VAR%N)
  6756.  ifnottrue(goto (nomore))
  6757.  AddVar(%NDXREC%+1=n)
  6758.  Inc(y)
  6759.  Loaduser (%NDNUMB%)
  6760.  SetEqual(a=\:NAME\)
  6761.  SetLen(a=23)
  6762.  Say(&3&%VAR%A*) 
  6763.  SetEqual(a=\:FROM\)
  6764.  SetLen(a=26)            ;idea...
  6765.  Say(%VAR%A*)
  6766.  Say(\:LAST\        \:LASTT\)
  6767. ; CmpVal(%VAR%Y,/:SCREENLEN/)
  6768.  
  6769.  If(&y)>=(/:SCREENLEN/) then Goto(MorePrompt)
  6770.  
  6771. ; IfNotTrue(Goto(MorePrompt))
  6772.  Goto(Searching)
  6773.  ;enufsec (60)
  6774.  ;iftrue (Say (&7&Street            : &3&\:STREET\))
  6775.  ;Say (&7&From              : &3&\:FROM\)
  6776.  ;iftrue(Say (&7&Birthday          : &3&\:BIRTH\))
  6777.  ;iftrue(Say (&7&Phone Number      : &3&\:PHONE\))
  6778.  ;iftrue(say (&7&Work Phone        : &3&\:WORK\))
  6779.  ;Say (&7&Last Date On      : &3&\:LAST\)
  6780.  ;Say (&7&Last Time On      : &3&\:LASTT\&CR&)
  6781.  ;yesnoask (&12&Search For Another User (Y/N)? &15&*)
  6782.  ;If (%RESP%)=(Yes) then goto (moreprompt)
  6783. return
  6784.  
  6785. *NoMore
  6786.  Say (&4&-- End of List --)
  6787.  Enter
  6788.  SetNv(key=)
  6789.  return
  6790.  
  6791. *MorePrompt
  6792.  ResetPause
  6793.  Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  6794.  DefPif (s:stop,n:nonstop)
  6795.  PausePrompt
  6796.  If(%ARESP%)=(STOP) then Goto(NoMore)
  6797.  
  6798.  *YesMore
  6799.  Back(17)
  6800.  Eline(17)
  6801.  SetEqual(y=1)
  6802.  Goto(Searching)
  6803.  
  6804. *NotEnufSec
  6805.  Say (&12&Sorry, but your security is not high enough to access this command.&CR&)
  6806.  Enter
  6807.  return
  6808. USERRWIPCTL8
  6809.  loadsub(control\exitwip.ctl)
  6810.  LoadSub(control\macros\savevars.ctl)
  6811.  *WhichOne
  6812.  Say(&CR&&15&Load User Record of person message is Addressed (&12&T&15&)o or Sent (&12&B&15&)y? &14&*)
  6813.  MenuKey(%CRON%*)
  6814.  BigNiceSay(T:To,B:From)
  6815.  BigIf(T:UTo,B:UFrom,<CR>:AGMail)
  6816.  Say(&CR&&12&Invalid selection. Please try again...)
  6817.  Goto(WhichOne)
  6818.  *UTo
  6819.  SetNv(editor=%MSGTO%)
  6820.  Goto(LoadRec)
  6821.  *UFrom
  6822.  SetNv(editor=%MSGFROM%)
  6823.  *LoadRec
  6824.  ClearScr
  6825.  SetEqual(l=1)
  6826.  LoadSub(control\ued1.ctl)
  6827.  LoadSub(control\macros\restvars.ctl)
  6828.  SetEqual(/nveditor=)
  6829.  
  6830. *agmail
  6831. return
  6832. PASSDOTSCTLτLen(/:PASS/)
  6833. If(%ARESP%)<(1) then Return
  6834. SetNv(passlen=%ARESP%)
  6835. SetEqual(u=1)
  6836. SetNv(passdots=)
  6837. *Looper
  6838.  SetNv(passdots=%NV%PASSDOTS%.)
  6839. ; Say(.*)
  6840.  Inc(u)
  6841. If(&u)<=(%NV%PASSLEN%) then Goto(Looper)
  6842. SetNv(passlen=)
  6843. Return
  6844.  
  6845. BYECTLsetnv(norefresh=1)
  6846. if (%nv%wipmode%)=(1) then goto (wipbye)
  6847. Seek(%pbtemp%Tagged.%NODE%)
  6848. IfTrue (Say(&CR&&10&You have files tagged for download!%BEEP%%BEEP%))
  6849. flushout
  6850. Say(&CR&&15&Are you sure you want to disconnect? (&12&Y&15&/&12&N&15&)&14&*)
  6851. Back(4)
  6852. YesNoAsk(*)
  6853. If (%RESP%)=(No) Then Return
  6854. clearscr
  6855. Display (display\goodbye)
  6856. Log(<<,User logged off normally.)
  6857. QuitBBS
  6858.  
  6859. *wipBye
  6860. seek (%pbtemp%tagged.%node%)
  6861. writeln(Are you sure you want to log off?)
  6862. writeln(SYSOP: Type 1 [enter] for no, 2 [enter] for yes)
  6863. writeln()
  6864. iftrue(setequal(c=13~You have files tagged for download!  Are you sure you want to log off?~Log Off?~2~))
  6865. ifnottrue(setequal(c=13~Are you sure you want to log off?~Log off?~2~))
  6866. jump (wipc)
  6867.  
  6868.    *gi0
  6869.    comlineinput(180,l)
  6870.    if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  6871.    *tryr
  6872.    setequal(r=%resp%)
  6873.    ascii
  6874.    if (%aresp%)=(21) then goto (wipBye)
  6875.    if (%aresp%)=(6) then
  6876.      len(%var%r)
  6877.      if (%aresp%)=(1) then goto (gi0)
  6878.      get(&r,2,1000)
  6879.      setequal(/resp=%aresp%)
  6880.      goto (tryr)
  6881.    endif
  6882.    if (%resp%)<>(2) then return
  6883.    log(<<,User logged off normally.)
  6884.    setnv(NoInfo=1)
  6885.    loadsub(control\newdisp.ctl,setnv(file=goodbye))
  6886.  
  6887.    setnv(file=goodbye.wav)
  6888.    loadsub(control\wipsound.ctl)
  6889.  
  6890.    secpause(2)
  6891.    quitbbs
  6892.  
  6893.  
  6894.  
  6895. *GCHAR
  6896. COMPRINT(%NV%TEXT%)
  6897. SETEQUAL(A=0)
  6898. DO
  6899. COMKEY
  6900. ASCII
  6901. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  6902. INC(A)
  6903. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  6904. IF(%ARESP%)=(&B) THEN RET
  6905. IF(&A)>(200) THEN RET
  6906. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  6907. DELAY18TH(2)
  6908. LOOP
  6909. *WIPC
  6910. LOCALKEY(1)
  6911. IFNOTTRUE(GOTO(NOLKEY))
  6912. SYSKEYCHECK
  6913. SETEQUAL(/RESP=)
  6914. SETEQUAL(/RESP=)
  6915. *NOLKEY
  6916. CCARRIER
  6917. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  6918. CHECKSUM(%VAR%C)
  6919. SETEQUAL(B=6)
  6920. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  6921. SETNV(PBACK=)
  6922. JUMP(GCHAR)
  6923. if(%ARESP%)<>(6) THEN FLUSHOUT
  6924. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  6925. setequal(c=%aresp%)
  6926. SETEQUAL(/IBUFF=%NV%PBACK%)
  6927. LEN(%NV%PBACK%)
  6928. SETEQUAL(/IBUFF0=%ARESP%)
  6929. SETEQUAL(/ARESP=%VAR%C)
  6930. RET
  6931. *NOC0
  6932. log(<<,Carrier lost.)
  6933. quitbbs
  6934. QWKBULLCTLWsay(            Adding New Bulletins to Packet... *)
  6935. setequal(t=0)
  6936. do
  6937. inc(t)
  6938. seek(display\bull%var%t.asc)
  6939. ifnottrue(goto(done))
  6940. fdate(display\bull%var%t.asc)
  6941. Julian(%aresp%)
  6942. setequal(w=%aresp%)
  6943. julian(/:last/)
  6944. if (%var%w)=>(%aresp%) then fcopy(display\bull%var%t.asc,%pbtemp%qwkwork\blt-1.%var%t)
  6945. loop
  6946.  
  6947. *done
  6948. say(Done!)
  6949. return
  6950. UBATCHCTLα setnv(origarea=%farea%)
  6951.  
  6952. jump (garea)
  6953.  
  6954.  setequal(w=1)
  6955.  setequal(/nvUDir=%farea%)
  6956.  
  6957.  
  6958. ; listfile(%nv%OriArea%)
  6959.  selfarea(/:lastdown/)
  6960.  
  6961. exec(zc2\adir Rec%NODE%\*.* >%pbtemp%DescDir.%NODE%)
  6962. inpopen(%pbtemp%DescDir.%NODE%)
  6963. do
  6964. fendif(co)
  6965. inpread
  6966. kill(Rec%NODE%\%ARESP%)
  6967. loop
  6968.  
  6969. *co
  6970. inpclose
  6971.  
  6972.  kill(%pbtemp%udescs.%NODE%,%pbtemp%ubatch.%NODE%,%pbtemp%ubatch1.%NODE%)
  6973.  
  6974. ; If(%LOCAL%)=(TRUE) Then Loadmem(control\macros\lubatch.ctl)
  6975.  
  6976. *fname
  6977.   if (&w)=(10) then goto (askup)
  6978.   say(&CR&&10&Pressing (ENTER) will let you start uploading your files.)
  6979.   order(%var%w)
  6980.   say(&15&Please enter name of the %var%w%aresp% file to upload&12&: &15&(            )&14&*)
  6981.   back(13)
  6982.   menuask(%NOCR%%CRON%%LEN%12%*)
  6983.   if (%RESP%)=(<CR>) then Say ()
  6984.   if (%RESP%)=(<CR>) then goto (askup)
  6985.   len(%Resp%)
  6986.   back(%Aresp%)
  6987.   adddef(.%DEFEXT%)
  6988.   say(%Resp%)
  6989.   setequal(d=%RESP%)
  6990.   iseek(%var%d)
  6991.   if (%aresp%)=(Yes) then goto (ishere)
  6992.   if (%Aresp%)=(INVALID) then goto (invfn)
  6993.   appendto(%pbtemp%ubatch.%NODE%,%var%p%var%d)
  6994.   setequal(^%var%w=%var%p%var%d)
  6995.   inc(w)
  6996.   appendto(%pbtemp%ubatch1.%NODE%,%var%d)
  6997.   say(&CR&&14&Please enter a description for your file.  &10&The description can take up 3 lines.*)
  6998.   resetwrap   ;the resetwrap command resets the wordwrap.
  6999.   say(&CR&&15&   (----2----3----4----5----6----7---8----))
  7000.   wrapask (%MIN%1%%LEN%40%&3&1&12&: &15&*)
  7001.   setequal(r=1)
  7002.   appendto(%pbtemp%udescs.%NODE%,%RESP%)
  7003.   zap(DescTemp\%var%d,%RESP%)
  7004.   wrapask (%LEN%40%%CRON%&3&2&12&: &15&*)
  7005.   find(%resp%,<CR>)
  7006.   notif (%aresp%)=(0) then goto (nomore)
  7007.   appendto(%pbtemp%udescs.%NODE%,%RESP%)
  7008.   appendto(DescTemp\%var%d,%RESP%)
  7009.   setequal(r=2)
  7010.   ask (%LEN%39%&3&3&12&: &15&*)
  7011.   appendto(%pbtemp%udescs.%NODE%,%RESP%)
  7012.   appendto(DescTemp\%var%d,%RESP%)
  7013.   setequal(r=3)
  7014.   goto (fname)
  7015.  
  7016. *nomore
  7017.   appendto(%pbtemp%udescs.%NODE%,)
  7018.   appendto(%pbtemp%udescs.%NODE%,)
  7019.   appendto(DescTemp\%var%d,)
  7020.   appendto(DescTemp\%var%d,)
  7021.   goto (fname)
  7022.  
  7023. *askup
  7024.   if (^1)=() then goto (ex)
  7025.   say(&CR&&15&       Would you like to upload these files? (&12&Y&15&/&12&N&15&)&14&*)
  7026.   back(4)
  7027.   yesnoask(*)
  7028.   if (%Resp%)=(No) then goto (ex)
  7029.   say(&15&Would you like us to log you off afterwards? (&12&Y&15&/&12&N&15&)&14&*)
  7030.   back(4)
  7031.   yesnoask(*)
  7032.   setequal(m=%RESP%)
  7033.   if (%LOCAL%)=(TRUE) then goto (local)
  7034.   setactivity(Uploading Files)
  7035.   say(&CR&&11&We're ready to receive the files.  Please start sending them now.)
  7036.   fixfile(protocol\%var%b-u.bt,%pbtemp%%var%b-u.bat)
  7037.   initclock ;initalize the timer that keeps track of how long the d/l took...
  7038.   exec(%pbtemp%%var%b-u.BAT│)
  7039.   tfreeze(-1)
  7040.   kill(%pbtemp%%var%b-u.bat)
  7041.  
  7042. *success
  7043.   listfile(%nv%UDir%)
  7044.   selfarea(/:lastup/)
  7045.   notif (%ARESP%)=(0) then goto (aborted)
  7046.   xfertime
  7047.   setequal(e=%ARESP%)
  7048.   if (%ARESP%)=(ERROR) then goto (dsucc)
  7049.   upped
  7050.   setequal(t=0)
  7051.   linefeed(1)
  7052.   setequal(a=/:UPLOADS/)
  7053.   clearmem
  7054.   setequal(c=0)
  7055.   setequal(i=1)
  7056.  
  7057. exec(zc2\adir Rec%NODE%\*.* >%pbtemp%RecDir.%NODE%)
  7058. lines(%pbtemp%RecDir.%NODE%)
  7059. setequal(/nvRecLns=%ARESP%)
  7060. if (%ARESP%)=(0) then goto (stcalc)
  7061. fcopy(%pbtemp%RecDir.%NODE%,%pbtemp%ubatch1.%NODE%)
  7062.  
  7063. *stcalc
  7064.   inpline(%pbtemp%ubatch1.%NODE%,%var%i)
  7065.   if (%ARESP%)=() then goto (donecalc)
  7066.   setequal(d=%ARESP%)
  7067.   setequal(/nvOA=%FAREA%)
  7068. ;  listfile(%NV%OriArea%)
  7069.   iseek(%var%d)
  7070. ;  if (%aresp%)=(Yes) then goto (nextfile2)
  7071. if (%aresp%)=(Yes) then goto (dozc2)
  7072.   if (%aresp%)=(INVALID) then goto (nextfile2)
  7073.   listfile(%NV%OA%)
  7074.   iseek(%var%d)
  7075.   say(aresp from second iseek:%aresp%!)
  7076. ;  if (%aresp%)=(Yes) then goto (nextfile)
  7077. if (%aresp%)=(Yes) then goto (dozc2)
  7078.   if (%aresp%)=(INVALID) then goto (nextfile)
  7079.   setequal(b=0)
  7080.   notif (%nv%RecLns%)=(0) then fcopy(Rec%NODE%\%var%d,%var%p%var%d)
  7081.  
  7082. *dozc2
  7083.   setnv(zc2path=%var%p)
  7084.   setnv(zc2file=%var%d)
  7085.   loadsub(zc2\zc2.ctl)
  7086.  
  7087.   if (&a)=(2) then goto (nextfile)
  7088.   size(%var%p%var%d)
  7089.   addvar(%var%t+%ARESP%=t)
  7090.   cnvtk(%ARESP%)
  7091.   addvar(%ARESP%+/:KUP/=o)
  7092.   setequal(/KUP=%var%o)
  7093.   multvar(%var%c*3=y)
  7094.   inc(y)
  7095.   notif (%var%b)=(0) then goto (co2)
  7096.   seek(DescTemp\%var%d)
  7097.   IfNotTrue(goto (c3))
  7098.   setequal(^2=)
  7099.   setequal(^3=)
  7100.   setequal(^4=)
  7101.   setequal(^5=)
  7102.   setequal(^6=)
  7103.   setequal(^7=)
  7104.   setequal(^8=)
  7105.   setequal(^9=)
  7106.   setequal(^10=)
  7107.   arrayread(DescTemp\%var%d)
  7108.   goto (co2)
  7109. *c3
  7110.   if (%nv%RecLns%)=(0) then goto (c4)
  7111.  
  7112.   say(&CR&&14&Please enter a description for &11&%VAR%D&14&.  &10&The description can take up 3 lines.*)
  7113.   resetwrap   ;the resetwrap command resets the wordwrap.
  7114.   say(&CR&&15&   (----2----3----4----5----6----7---8----))
  7115.   wrapask (%MIN%1%%LEN%40%&3&1&12&: &15&*)
  7116.   setequal(r=1)
  7117.   setequal(^2=)
  7118.   setequal(^3=)
  7119.   setequal(^4=)
  7120.   setequal(^5=)
  7121.   setequal(^6=)
  7122.   setequal(^8=)
  7123.   setequal(^9=)
  7124.   setequal(^10=)
  7125.   setequal(^1=%RESP%)
  7126.   wrapask (%LEN%40%%CRON%&3&2&12&: &15&*)
  7127.   find(%resp%,<CR>)
  7128.   notif (%aresp%)=(0) then goto (c4)
  7129.   setequal(^2=%RESP%)
  7130.   setequal(r=2)
  7131.   ask (%LEN%39%&3&3&12&: &15&*)
  7132.   setequal(^3=%RESP%)
  7133.   setequal(r=3)
  7134.   goto (co2)
  7135.  
  7136.   *co2
  7137.   *c4
  7138.   setequal(k=10)
  7139. *scnt
  7140.     if (^:k^)<>() then goto (dnp0)
  7141.     addvar(%var%k+-1=k)
  7142.     if (%var%k)>(1) then goto (scnt)
  7143.  
  7144. *dnp0
  7145.   file2(%var%p,%var%d,%var%k)
  7146.   log(--,%var%d Uploaded (batch).)
  7147.   log(--,  Protocol: '%nv%protocol'.)
  7148.   appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.)
  7149. *nextfile
  7150.   inc(i)
  7151.   inc(c)
  7152.   goto (stcalc)
  7153.  
  7154. *donecalc
  7155.   inc(c)
  7156.   say(%BEEP%)
  7157.   multvar(%XMIN%*60=o)
  7158.   divvar(%var%t/%var%o=g)
  7159.   addvar(/:uploads/+%var%c=a)
  7160.   setequal(/UPLOADS=%var%a)
  7161.   addvar(/:dailyul/+%var%c=a)
  7162.   setequal(/dailyul=%var%a)
  7163.   log(--,Rate: %var%g CPS)
  7164.  
  7165. *dsucc
  7166.   tfreeze(0)
  7167.   display (display\SUCCUB)
  7168.   if (%var%m)=(Yes) then goto (autooff)
  7169.  
  7170. *ex
  7171.   linefeed(1)
  7172.   seek(bxtest.bt)
  7173.   if (%ARESP%)=(Yes) then goto (testup)
  7174.   resetlist
  7175. ;  listfile(%nv%OriArea%)
  7176.   listfile(%nv%origarea%)
  7177.   selfarea(/:lastdown/)
  7178.   tfreeze(0)
  7179.   setnv(protocol=)
  7180.   if (%nv%wipe%)=() then return
  7181.   setnv(wipe=)
  7182.   setnv(wipmode=1)
  7183.   return
  7184.  
  7185. *aborted
  7186.   inpclose
  7187.   inpopen(%pbtemp%ubatch.%node%)
  7188.   *str
  7189.   fendif(dn0)
  7190.   inpread
  7191.   kill(%aresp%)
  7192.   goto (str)
  7193.   *dn0
  7194.   log(--,Batch Upload aborted.)
  7195.   inpclose
  7196.   display (display\ABORTED)
  7197.   goto (ex)
  7198.  
  7199. *ishere
  7200.   display(display\ISHERE)
  7201.   enter
  7202.   linefeed(1)
  7203.   goto (fname)
  7204.  
  7205. *testup
  7206.   fixfile(bxcheck.bt,bxcheck.bat)
  7207.   exec(bxcheck.bat)
  7208.   display (display\USUCCESS)
  7209.   goto (ex)
  7210.  
  7211. *autooff
  7212.   loadmem(control\autoOff.ctl)
  7213.  
  7214. *local
  7215.   initclock
  7216.   say(&CR&&10&You will now specify the path where the file resides.  Ex: C:\DOWNLOADS\)
  7217.   menuask(&15&Please enter the path&12&: &14&*)
  7218.   fcopy (%RESP%\%var%d,%var%p%var%d)
  7219.   goto (success)
  7220.  
  7221. *invfn
  7222.   display(display\INVALID)
  7223.   flushout
  7224.   selfarea(/:LASTDOWN/)
  7225.   enter
  7226.   goto (fname)
  7227.  
  7228. *notenufs
  7229.   display (display\NOSPACE)
  7230.   selfarea(/:LASTDOWN/)
  7231.   enter
  7232.   goto (fname)
  7233.  
  7234. *phelp
  7235.   display(display\help\prot,/:SEC/)
  7236.   goto (pickprot)
  7237.  
  7238. *nextfile2
  7239.  listfile(%nv%oa%)
  7240.  goto (nextfile)
  7241.  
  7242.  
  7243. *garea
  7244. setequal(p=files\uploads\)
  7245. LoadSub(control\macros\changeu.ctl)
  7246. SetEqual(p=%FILPATH%)
  7247. ret
  7248. NEWSEDITCTL¢#loadsub(control\exitwip.ctl)
  7249.  
  7250. setnv(newstemp=%pbtemp%news)
  7251. mkdir(%nv%newstemp%)
  7252. setnv(newstemp=%nv%newstemp%\)
  7253. kill(%nv%newstemp%*.*)
  7254.  
  7255. setnv(curart=1)
  7256. Loadsub(control\macros\split.ctl) ; split NEWS.TXT into individual articles
  7257. If(%NV%NEWS%)=() then Goto(ReallyQuit) ; if SPLIT.CTL returned error
  7258. SetEqual(a=1)
  7259. SetEqual(b=0)
  7260. Seek(%NV%NEWS%.%NV%NEWSEXT%)
  7261. SetNv(ntstatus=%ARESP%) ; status of NEWS.TXT
  7262. If(%ARESP%)=(No) then
  7263.   SetNv(a=%VAR%A)
  7264.   SetNv(b=%VAR%B)
  7265.   SetNv(add=NO)
  7266.   SetEqual(/nvnewsmade=No)    ; if no NEWS.TXT file, jump to add new article
  7267.   Goto(NewDate)
  7268.  endif
  7269. SetEqual(/nvnewsmade=Yes) ; has the newsletter been re-compiled yet?
  7270.  
  7271. *ShowArticle
  7272. setnv(noinc=)
  7273. If(%NV%NTSTATUS%)=(No) then Goto(ReallyQuit)
  7274. loadsub(control\macros\newsdisp.ctl)
  7275. If(%RESP%)=(<CR>) then Goto(ShowArticle)
  7276. BigNiceSay(N:Next,P:Prev,E:Edit,U:Update,K:Kill,A:Add,S:Show,Q:Quit)
  7277. BigIf(N:Next,P:Prev,Q:Quit,U:Update,S:ShowArticle)
  7278. SetNv(newsmade=No)  ; sets flag that changes have been made to newsletter
  7279. BigIf(E:Edit,K:Kill,A:Add1)
  7280. Goto(Invalid2)
  7281.  
  7282. *Add1
  7283. Say(&CR&&15&Add an article (&12&B&15&)efore or (&12&A&15&)fter the Current Article? &14&*)
  7284. MenuKey(%CRON%)
  7285. If(%RESP%)=(<CR>) then Goto(ShowArticle)
  7286. BigNiceSay(B:Before,A:After)
  7287. BigIf(B:Adding,A:Adding)
  7288. Goto(Add1)
  7289.  
  7290. *Adding
  7291. SetNv(add=%RESP%)
  7292. *NewDate
  7293. loadsub(control\macros\newsdate.ctl)
  7294. If(%RESP%)=(<CR>) then Goto(AddAbt)
  7295. addvar(%nv%highart%+1=w)
  7296. setnv(highart=%var%w)
  7297. setnv(articles=%var%w)
  7298. SetEqual(/nvtitle=%RESP%)
  7299. ;if(%nv%add%)=(B) then jump (decart)
  7300. If(%NV%ADD%)=(B) then Goto(BumpOthers)
  7301. If(%NV%ADD%)=(A) then
  7302.    jump (incart)
  7303.    Inc(b)
  7304.    Seek(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  7305.    SetNv(a=%VAR%A)
  7306.    SetNv(b=%VAR%B)
  7307.    IfTrue(Goto(BumpOthers))
  7308.  endif
  7309. *AfterBumping
  7310. SetNv(add=)
  7311. Jump(MakeHdr)
  7312. InitTxt
  7313. Goto(Add)
  7314. ;Enter
  7315. Goto(ShowArticle)
  7316.  
  7317. *BumpOthers
  7318. LoadSub(control\macros\bump.ctl)
  7319. if (%nv%add%)=(B) then addvar(%var%b+-1=b)
  7320. if (%nv%add%)=(B) then setnv(b=%var%b)
  7321. Goto(AfterBumping)
  7322.  
  7323. *MakeHdr
  7324. Zap(%nv%newstemp%HDR%VAR%A.%VAR%B,%NV%DATE%)
  7325. AppendTo(%nv%newstemp%HDR%VAR%A.%VAR%B,%NV%TITLE%)
  7326. Ret
  7327.  
  7328. *AddAbt
  7329. Say(&CR&&12&New Article Aborted...)
  7330. SecPause(1)
  7331. Goto(showarticle)
  7332.  
  7333. *Kill
  7334. Say(&CR&&15&Are you sure you wish to kill this article? (&12&Y&15&/&12&N&15&)&14&*)
  7335. Back(4)
  7336. YesNoAsk(*)
  7337. If(%RESP%)<>(Yes) then Goto(ShowArticle)
  7338. Zap(%nv%newstemp%HDR%VAR%A.%VAR%B)
  7339. Zap(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  7340. setequal(w=%nv%highart%)
  7341. addvar(%var%w+-1=w)
  7342. if (%var%w)>(0) then setnv(highart=%var%w)
  7343. setnv(noinc=1)
  7344. goto (next)
  7345.  
  7346. *Update
  7347. If(%NV%NEWSMADE%)=(Yes) then
  7348.   Say(&CR&&12&No changes have been made since the last time you updated the newsletter.)
  7349.   SecPause(2)
  7350.   Goto(ShowArticle)
  7351.  endif
  7352. LoadSub(control\macros\upnews.ctl)
  7353. Goto(Quit)
  7354.  
  7355. *Quit
  7356. NotIf(%NV%NEWSMADE%)=(Yes) then
  7357.   Say(&CR&&12&You have made changes to the newsletter but have not yet selected to Update)
  7358.   Say(the newsletter. Any changes you have made will be lost if you quit now!)
  7359.   Say(&CR&&15&Would you like to quit anyway and lose all changes? (&12&Y&15&/&12&N&15&)&14&*)
  7360.   Back(4)
  7361.   YesNoAsk(*)
  7362.   If(%RESP%)=(Yes) then Goto(ReallyQuit)
  7363.   Goto(ShowArticle)
  7364.  endif
  7365. *ReallyQuit
  7366. LoadSub(control\macros\killtemp.ctl)
  7367. if (%nv%wipe%)=() then return
  7368. setnv(wipe=)
  7369. setnv(wipmode=1)
  7370. return
  7371.  
  7372.  
  7373. *Next
  7374. SetNv(olda=%VAR%A)
  7375. SetNv(oldb=%VAR%B)
  7376. *Next2
  7377. Inc(b)
  7378. Seek(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  7379. If(%ARESP%)=(Yes) then
  7380.   Lines(%nv%newstemp%HDR%VAR%A.%VAR%B)
  7381.   If(%ARESP%)<(2) then Goto(NextUp)
  7382.   if (%nv%noinc%)<>(1) then jump (incart)
  7383.   Goto(ShowArticle)
  7384.  endif
  7385. *NextUp
  7386. ;SetEqual(b=0)
  7387. ;AddVar(%VAR%B+-1=b)
  7388. addvar(%var%b+1=b)
  7389.  
  7390. ;Inc(a)
  7391. *anotherB
  7392. Seek(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  7393. if (%aresp%)=(No) then
  7394.    if (%var%b)=(0) then goto (nomore)
  7395.    setequal(b=0)
  7396.    inc(a)
  7397.    goto (anotherB)
  7398.    endif
  7399. ;IfNotTrue(goto(nomore))
  7400. Lines(%nv%newstemp%HDR%VAR%A.%VAR%B)
  7401. If(%ARESP%)<(2) then Goto(next2)
  7402. if (%nv%noinc%)<>(1) then jump (incart)
  7403. Goto(ShowArticle)
  7404.  
  7405. *incart
  7406. addvar(%nv%curart%+1=w)
  7407. setnv(curart=%var%w)
  7408. ret
  7409. *decart
  7410. addvar(%nv%curart%+-1=w)
  7411. setnv(curart=%var%w)
  7412. ret
  7413.  
  7414. *ent
  7415. Display(display\nenter)
  7416. Say(&3&What would you like to do with the changes to the article?&12&: &15&*)
  7417. MenuKey
  7418. BigNiceSay (t:Throw Away,s:Save,e:Edit,a:Add,L:List,d:Delete Line,h:help,i:Insert)
  7419. BigIf (t:abort,s:save,e:edit2,L:list,a:add,d:del,h:help,i:insert)
  7420. Say(&CR&&12&Invalid selection ... Please try again.&CR&)
  7421. FlushOut
  7422. Goto (ent)
  7423.  
  7424.   *list
  7425. linefeed(1)
  7426. showtxtl(11,3) ;showtxtL is the same as showtxt except shows line numbers...
  7427. linefeed(1)
  7428. enter
  7429. Goto (ent)
  7430.  
  7431. *Save
  7432. loadsub(control\macros\newsSave.ctl)
  7433. Goto(ShowArticle)
  7434.  
  7435.   *edit2
  7436. ;If (%FULL%)=(Yes) Then Goto (add)
  7437. cMenuAsk (&CR&&3&Which line would you like to edit?&12&: &15&*)
  7438. Number(%RESP%)
  7439. IfNotTrue (Goto (invn))
  7440. If (%RESP%)=(%MAXLINE%) Then Goto (goedit)
  7441. linefeed(1)
  7442. cmpval(%RESP%,%MAXLINE%)
  7443. If (%ARESP%)=(No) Then Goto (Invn)
  7444.  
  7445.   *goedit
  7446. SetEqual(h=%MAXLINE%)
  7447. gettext(15,7,%RESP%,%RESP%)
  7448. if (%nv%fromssc%)=(1) then goto (fromssc)
  7449. setwrap()
  7450. setmax(%var%h)
  7451. Goto (ent)
  7452.  
  7453.   *invn
  7454. Say(&14&That line number doesn't exist in this article.  &11&Try again, please.&CR&)
  7455. Goto (ent)
  7456.  
  7457. *Prev
  7458. SetNv(olda=%VAR%A)
  7459. SetNv(oldb=%VAR%B)
  7460. *prev2
  7461. If(&b)>(0) then
  7462.   AddVar(%VAR%B+-1=b)
  7463.   Lines(%nv%newstemp%HDR%VAR%A.%VAR%B)
  7464.   If(%ARESP%)<(2) then Goto(Prev)
  7465.   jump (decart)
  7466.   Goto(ShowArticle)
  7467.  endif
  7468. If(&a)=(1) then Goto(FirstArt)
  7469. AddVar(%VAR%A+-1=a)
  7470. *LittleLoop                          ; finds highest 'b' value for current 'a'
  7471. Inc(b)
  7472. Seek(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  7473. IfTrue(goto(Littleloop))
  7474. AddVar(%VAR%B+-1=b)
  7475. Lines(%nv%newstemp%HDR%VAR%A.%VAR%B)
  7476. If(%ARESP%)<(2) then Goto(prev2)
  7477. jump (decart)
  7478. Goto(ShowArticle)
  7479.  
  7480. *Edit
  7481. SetEqual(/nva=%VAR%A)
  7482. SetEqual(/nvb=%VAR%B)
  7483. Say(&CR&&15&Edit (&12&D&15&)ate, (&12&T&15&)itle, or (&12&B&15&)ody of Article? &14&*)
  7484. MenuKey(%CRON%)
  7485. If(%RESP%)=(<CR>) then Goto(ShowArticle)
  7486. BigNiceSay(D:Date,T:Title,B:Body)
  7487. BigIf(D:Date,T:Title,B:Body)
  7488. Goto(invalid)
  7489.  
  7490. *Invalid
  7491. Say(&CR&&12&Invalid selection. Please try again...)
  7492. SecPause(1)
  7493. Goto(Edit)
  7494.  
  7495. *Invalid2
  7496. Say(&CR&&CR&&12&Invalid selection. Please try again...)
  7497. SecPause(1)
  7498. Goto(ShowArticle)
  7499.  
  7500. *date
  7501. Say(&CR&&15&Enter new date for article: &14&*)
  7502. Picture(##-##-##)
  7503. DateOk(%RESP%)
  7504. IfNotTrue(goto(invdate))
  7505. SetEqual(/nvdate=%RESP%)
  7506. Jump(MakeNewHeader)
  7507. Goto(ShowArticle)
  7508.  
  7509. *invdate
  7510. Say(&CR&&12&That date is invalid. Please re-enter a new date...)
  7511. Goto(Date)
  7512.  
  7513. *title
  7514. Say(&CR&&15&Enter new title for article: &14&*)
  7515. SetFill(%NV%TITLE%)
  7516. CAsk(%CRON%*)
  7517. If(%RESP%)=(<CR>) then Goto(ShowArticle)
  7518. SetNv(Title=%RESP%)
  7519. Jump(MakeNewHeader)
  7520. Goto(ShowArticle)
  7521.  
  7522. *Body
  7523. InitTxt
  7524. Lines(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  7525. Import(%nv%newstemp%NEWS%VAR%A.%VAR%B,,1,100)
  7526.  
  7527. *Add
  7528. resetpause
  7529. ;If (%FULL%)=(Yes) Then Goto (fmode)
  7530. ClearScr
  7531. Say(&14&You may now edit the news article.  Press (&11&ENTER&14&) to end editing.&CR&)
  7532. Say(&3&    (--------/---------/---------/---------/---------/---------/---------/----))
  7533. spause(3)
  7534. ;CmpValO(%MAXLINE%,%VAR%A)
  7535. ;IfTrue(Goto(Shortmess))
  7536. AddVar(%MAXLINE%+-1=b)
  7537. If(%MAXLINE%)>(1) then Showtxtt(15,7,1,%VAR%B)
  7538. *getit
  7539. gettext(15,7,%MAXLINE%,99)
  7540. if (%nv%fromssc%)=(1) then goto (fromssc)
  7541. setwrap()
  7542. delextra
  7543. Goto(ent)
  7544.  
  7545.   *abort
  7546. Say(&CR&&12&If you throw away the changes, you will lose all changes made to the article!)
  7547. Say(&15&Are you sure you want to throw it away? (&12&Y&15&/&12&N&15&)&14&*)
  7548. Back(4)
  7549. YesNoAsk(*)
  7550. If(%RESP%)=(Yes) then
  7551.   SetEqual(a=%NV%A%)
  7552.   SetEqual(b=%NV%B%)
  7553.   Goto(ShowArticle)
  7554.  endif
  7555. Goto(Ent)
  7556.  
  7557.   *del
  7558. showtxtl(11,3)
  7559. cMenuAsk (&CR& &3&Please enter the first line to delete&12&: &15&*)
  7560. Number(%RESP%)
  7561. IfNotTrue (Goto (invn))
  7562. cmpval(%RESP%,%MAXLINE%)
  7563. IfNotTrue (NotIf (%RESP%)=(%MAXLINE%) Then Goto (invn))
  7564. SetEqual(e=%RESP%)
  7565. Say(&CR&&10&If you only want to delete one line, press (&11&ENTER&10&) here.)
  7566. cMenuAsk (%CRON%&3&  Please enter the last line to delete&12&: &15&*)
  7567. SetEqual(g=%RESP%)
  7568. If (&g)=(<CR>) Then SetEqual(g=%var%e)
  7569. Say(&CR&&14&You have selected to delete the following block of text:)
  7570. ShowTxtT(15,7,%VAR%E,%VAR%G)
  7571. Say(&15&Are you sure you want to delete this text? (&12&Y&15&/&12&N&15&)&14&*)
  7572. Back(4)
  7573. SetEqual(/nvyndef=%YESNODEF%)
  7574. Default(N)
  7575. YesNoAsk(*)
  7576. Default(%NV%YNDEF%)
  7577. NotIf(%RESP%)=(Yes) then goto(delabort)
  7578.  
  7579. DelLines(%var%e,%var%g)
  7580. If (%ARESP%)=(ERROR) Then Goto (invn)
  7581. Say(&CR&&11&Lines %var%e to %var%G have been deleted.)
  7582. Goto (ent)
  7583.  
  7584.   *delabort
  7585.    Say(&CR&&12&Delete text aborted...)
  7586.    Goto(ent)
  7587.  
  7588. *FirstArt
  7589. Say(&12&&CR&This is the first article.)
  7590. setnv(curart=1)
  7591. SetEqual(a=%NV%OLDA%)
  7592. SetEqual(b=%NV%OLDB%)
  7593. SecPause(1)
  7594. Goto(ShowArticle)
  7595.  
  7596. *NoMore
  7597. SetEqual(a=%NV%OLDA%)
  7598. SetEqual(b=%NV%OLDB%)
  7599. Say(&12&&CR&This is the last article.)
  7600. SecPause(1)
  7601. if (%nv%curart%)>(%nv%highart%) then
  7602.   if (%nv%curart%)>(1) then goto (prev)
  7603.   endif
  7604. ;setnv(curart=%nv%highart%)
  7605. Goto(ShowArticle)
  7606.  
  7607. *MakeNewHeader
  7608. Zap(%nv%newstemp%HDR%VAR%A.%VAR%B,%NV%DATE%)
  7609. AppendTo(%nv%newstemp%HDR%VAR%A.%VAR%B,%NV%TITLE%)
  7610. Ret
  7611.  
  7612. *fromssc
  7613. setnv(fromssc=)
  7614. say ( |)
  7615. goto(getit)
  7616. EDITDEFCTL@Say(&CR&&12&If your terminal supports at least ANSI graphics, when you enter a)
  7617. Say(message, you will be asked if you wish to use the Full-Screen Message Editor.)
  7618. Say(If you select &14&Yes&12& to the following question, you will automatically use)
  7619. Say(the Full-Screen Editor every time you enter a message. If you select &14&No&12&,)
  7620. Say(the BBS will ask you each time.)
  7621. Say(&CR&&15&Do you want to always use the Full-Screen Editor? (&12&Y&15&/&12&N&15&)*)
  7622. Back(4)
  7623. YesNoAsk(&14&*)
  7624. SetEqual(/FLAG2=%RESP%)
  7625. Log(--,Changed Default Full Screen Editor to %RESP%)
  7626. Return
  7627. BADPHONECTL/*BadPhone
  7628.  
  7629. ClearScr
  7630. Log(!!,User (%NAME%) entered Duplicate Info)
  7631.  
  7632. Zap(MSG.%NODE%,This message has been automatically generated for you by Powerboard.)
  7633. AppendTo(MSG.%NODE%,)
  7634. AppendTo(MSG.%NODE%,A new user attempted to logon to the BBS with the name %NAME%)
  7635. AppendTo(MSG.%NODE%,at %TIME% on %DATE%. The phone number this user entered (/:PHONE/))
  7636. AppendTo(MSG.%NODE%,duplicated the phone number of a user currently on record.)
  7637. AppendTo(MSG.%NODE%,)
  7638. AppendTo(MSG.%NODE%,If you wish to allow this user to re-logon to your BBS as a new user)
  7639. AppendTo(MSG.%NODE%,with the same phone number, you must edit the PHONES.DAT file in your)
  7640. AppendTo(MSG.%NODE%,main BBS directory and remove the phone number in question.)
  7641.  
  7642. SeekUser(%SYSOP%)
  7643. If(%ARESP%)=(No) then SetNv(tousernum=1)
  7644. SetNv(tousernum=%NDNUMB%)
  7645. ;if the sysop cannot be located in user file, assume sysop is user #1
  7646.  
  7647. InitTxt
  7648. Import(MSG.%NODE%,,1,100)
  7649.  
  7650. Writemsg(1,%SYSOP%,Powerboard BBS,New Logon With False Info,%nv%tousernum%,Yes,0,No,,)
  7651.  
  7652. Kill(MSG.%NODE%)
  7653.  
  7654. Display(display\dphone)
  7655.  
  7656. quitbbs
  7657.  
  7658. KILLNODECTLHloadsub(control\exitwip.ctl)
  7659. if (%MULTI%)=(TRUE) then goto (start)
  7660. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  7661. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  7662. say(your Sysop, %SYSOP%.&CR&)
  7663. enter
  7664. goto (doret)
  7665. *start
  7666. loadsub(control\macros\mwho.ctl)
  7667. menuask(%CRON%&CR&&3&Please enter the number of the &11&node &3&to disconnect&12&: &15&*)
  7668. if (%resp%)=(<CR>) then goto (doret)
  7669. killnode(%resp%)
  7670. *doret
  7671. if (%nv%wipe%)=() then return
  7672. setnv(wipe=)
  7673. setnv(wipmode=1)
  7674. return
  7675. NODEDOWNCTL(loadsub(control\exitwip.ctl)
  7676. if (%MULTI%)=(TRUE) then goto (start)
  7677. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  7678. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  7679. say(your Sysop, %SYSOP%.&CR&)
  7680. enter
  7681. goto (doret)
  7682. *start
  7683. loadsub(control\macros\mwho.ctl)
  7684. menuask(%CRON%&CR&&3&Please enter the number of the &11&node &3&to shut down&12&: &15&*)
  7685. if (%resp%)=(<CR>) then goto (doret)
  7686. nodedown(%resp%)
  7687. *doret
  7688. setnv(wipe=)
  7689. setnv(wipmode=1)
  7690. return
  7691. VIEWLOGSCTLloadsub(control\exitwip.ctl)
  7692. loadsub(control\macros\mwho.ctl)
  7693. menuask(&CR&&3&Node to view? (ENTER=Quit)&12&: &15&*)
  7694. if (%RESP%)=() then goto (dor)
  7695. closecall
  7696. VIEW(logs\callers.%resp%)
  7697. opencalle
  7698. enter
  7699. *dor
  7700. if (%nv%wipe%)=() then return
  7701. setnv(wipe=)
  7702. setnv(wipmode=1)
  7703. return
  7704. QUOTECTL
  7705. ;subroutine for quoting from original message in message reply
  7706. *Quote
  7707. linefeed(1)
  7708. lView(%pbtemp%quote.%NODE%,11,3)
  7709. *Encore
  7710. cMenuAsk (%CRON%&CR&&3&Enter the first line of the message you want to quote&12&: &15&*)
  7711. SetEqual(s=%RESP%)
  7712. If (%RESP%)=(<CR>) Then
  7713.   return ; will go to "add" label upon routine
  7714. ;  SetEqual(s=1)
  7715. ;  SetEqual(/resp=1)    ; comment out first line of block and uncomment out
  7716.                         ; the above two lines to make <CR> default to line 1
  7717.  endif
  7718. If (%RESP%)<(1) then
  7719.   Say(&CR&&12&That is an invalid line number!)
  7720.   Goto(Encore)
  7721.  endif
  7722. *EncoreDeux
  7723. cMenuAsk (%CRON%&3&Enter the last line of the message to quote&12&: &15&*)
  7724. SetEqual(t=%RESP%)
  7725. If (%RESP%)=(<CR>) Then SetEqual(t=%var%s)
  7726. NotIf(&s)<=(&t) then
  7727.   Say(&CR&&12&The last line number must be greater than or equal to the first line number!&CR&)
  7728.   SecPause(1)
  7729.   Goto(EncoreDeux)
  7730.  endif
  7731. Lines(%pbtemp%Quote.%NODE%)
  7732. If(&t)>(%ARESP%) then SetEqual(t=%ARESP%) ;if greater than maxline in original
  7733. SetEqual(a=%MAXLINE%)
  7734. Import (%pbtemp%quote.%NODE%,=> ,%var%s,%var%t)  ;import text from quote.%NODE% tmp file
  7735. AddVar(%MAXLINE%+-%VAR%A=a) ;display full quote when adding to message
  7736. ;AddVar(%VAR%T+-%VAR%S=a) ;display full quote when adding to message
  7737. AddVar(%VAR%A+1=a)
  7738. Return
  7739. CNFNEWSCTLÆseek(areas\news/:lastmsg/.asc)
  7740. ifnottrue(return)
  7741.  
  7742.  fDate(areas\news/:lastmsg/.asc)
  7743.  if (/:last/)=(%ARESP%) then goto (dd)
  7744.  CmpDate(/:LAST/,%ARESP%)
  7745.  IfTrue(return)
  7746.  
  7747. *dd
  7748.  seek(areas\news/:lastmsg/.wip)
  7749.  if (%nv%wipmode%)=(1) then ifnottrue(goto(nowip))
  7750.  display(areas\news/:lastmsg/)
  7751.  
  7752. return
  7753.  
  7754. *nowip
  7755. loadsub(control\exitwip.ctl)
  7756. display(areas\news/:lastmsg/)
  7757. setnv(wipmode=1)
  7758. return
  7759. SENDCTL═if (%nv%wipmode%)=(1) then loadmem(control\macros\sendwip.ctl)
  7760. ;SEND.CTL
  7761. ;subroutine for sending private messages from one node to another outside chat
  7762.  
  7763. *Filter
  7764. SetEqual(a=%NV%QUEUE%)
  7765. DeQueue(a)
  7766. SetNv(queue=%VAR%A)
  7767. SetEqual(/RESP=%ARESP%)
  7768. If(%RESP%)=() then Goto(ChooseNode)
  7769. Number(%RESP%)
  7770. IfNotTrue(Goto(ErrAndClear))
  7771. SetNv(ToNode=%RESP%)
  7772.  
  7773. *Check
  7774. setequal(w=0)
  7775. size(%CPAT%whoison.dat)
  7776. divvar(%ARESP%/131=y)
  7777. if(%NV%TONODE%)>(&y) then Goto(ErrAndClear) ; if invalid node #
  7778.  
  7779. nodestat(%nv%ToNode%)
  7780. If(%NAVAIL%)<>(Y) then Goto(NotAvailable)
  7781.  
  7782. *SendIt
  7783. If(%NV%QUEUE%)=() then Goto(GetSendText)
  7784. SetNv(j=%VAR%J)
  7785. NiceEqual(j=%NAME%)
  7786. SetNv(sendtext=(Pvt Msg)%NODE% %VAR%J: %NV%QUEUE%)
  7787. Seek(%CPAT%%NODE%.%NV%TONODE%)
  7788. IfNotTrue(Kill(%CPAT%%NODE%.%NV%TONODE%)
  7789. AppendTo(%CPAT%%NODE%.%NV%TONODE%,%NV%SENDTEXT%)
  7790. SetEqual(j=%NV%J%)
  7791. SetNv(j=)
  7792. SetNv(sendtext=)
  7793. SetNv(queue=hi)
  7794. SetNv(tonode=)
  7795. Say(&4&-- Private Message Sent --)
  7796. ;SecPause(1)
  7797. Return
  7798.  
  7799. *ChooseNode
  7800. LoadSub(control\macros\mwho.ctl)
  7801. Say(&CR&&15&Node to send message to?&12&: &14&*)
  7802. MenuAsk(%CRON%*)
  7803. If(%RESP%)=(<CR>) then Return
  7804. Number(%RESP%)
  7805. IfNotTrue(goto(errandclear))
  7806. SetNv(tonode=%RESP%)
  7807. *Check2
  7808. setequal(w=0)
  7809. size(%CPAT%whoison.dat)
  7810. divvar(%ARESP%/131=y)
  7811. if(%NV%TONODE%)>(&y) then Goto(ErrAndClear) ; if invalid node #
  7812.  
  7813. nodestat(%nv%ToNode%)
  7814. If(%NAVAIL%)<>(Y) then Goto(NotAvailable)
  7815.  
  7816. *GetSendText
  7817. Say(&CR&&15&Text to send&12&: &14&*)
  7818. Ask(%CRON%*)
  7819. If(%RESP%)=(<CR>) then Return
  7820. SetNv(queue=%RESP%)
  7821. Goto(SendIt)
  7822.  
  7823. *NotAvailable
  7824. Say(&CR&&12&That node is currently unavailable.&CR&)
  7825. SetNv(queue=)
  7826. SecPause(1)
  7827. Return
  7828.  
  7829. *ErrAndClear
  7830. Say(&CR&&12&The node number you specified is invalid.&CR&)
  7831. SetNv(queue=)
  7832. SecPause(1)
  7833. Return
  7834. EDITCCSCTLY;subroutine to edit Carbon Copy list
  7835.  
  7836.   *EditCCs
  7837.    ClearScr
  7838.    ;If(%NV%CC1%)=() then Return
  7839.    SetEqual(q=1)
  7840.    Say(&CR&&11&#  RECIPIENTS)
  7841.    Say(&7&------------------------------------------)
  7842.    If(%NV%CCs%)<(1) then Goto(NoMore)
  7843.    DO
  7844.     SetEqual(j=nv%ccnum%VAR%Q%)
  7845.     SetEqual(i=nv%cc%VAR%Q%)
  7846.     Prc(%%VAR%J)
  7847.     SetEqual(j=%ARESP%)
  7848.     Prc(%%VAR%I)
  7849.     SetEqual(i=%ARESP%)
  7850.     If(&i)=() then Goto(IncItAndGo)
  7851.     ;if blank, it has been deleted by the Edit CC List option
  7852.  
  7853.     Say(&3&%VAR%Q: &14&%VAR%I)
  7854.  
  7855.     *IncItAndGo
  7856.     Inc(q)
  7857.     If(&q)>(%NV%CCs%) then Goto(NoMore)
  7858.    LOOP
  7859.  
  7860. *NoMore
  7861. Say(&CR&&15&(&12&A&15&)dd or (&12&D&15&)elete a User to/from CC List (ENTER=quit)? &14&*)
  7862. MenuKey(%CRON%)
  7863. BigNiceSay(A:Add,D:Delete)
  7864. BigIf(A:Add,D:Delete)
  7865. If(%RESP%)=(<CR>) then
  7866.   Say()
  7867.   SetNv(high=)
  7868.   Return
  7869.  endif
  7870. Goto(BadSel)
  7871.  
  7872. *Delete
  7873. SetNv(high=%VAR%Q)  ; total # of CCs on list
  7874. Say(&CR&&15&Enter the number of the user you would like to remove from the list: &14&*)
  7875. Cask(%CRON%*)
  7876. If(%RESP%)=(<CR>) then Goto(EditCCs)
  7877. Number(%RESP%)
  7878. IfNotTrue(Goto(BadNumber))
  7879. If(%RESP%)>=(%NV%HIGH%) then Goto(BadNumber)
  7880. If(%RESP%)<(1) then Goto(BadNumber)
  7881. SetEqual(q=%RESP%)
  7882. SetEqual(j=NV%CC%VAR%Q%)
  7883. Prc(%%VAR%J)
  7884. SetNv(tempname=%ARESP%)
  7885. If(&q)=(%NV%HIGH%) then Goto(AfterLoop)  ; if deleting tail element
  7886. *LittleLoop
  7887.  Inc(q)
  7888.  SetEqual(j=nv%ccnum%VAR%Q%)
  7889.  SetEqual(i=nv%cc%VAR%Q%)
  7890.  Dec(q)
  7891.  Prc(%%VAR%J)
  7892.  SetNv(ccnum%VAR%Q=%ARESP%)
  7893.  Prc(%%VAR%I)
  7894.  SetNv(cc%VAR%Q=%ARESP%)
  7895.  Inc(q)
  7896.  If(&q)<(%NV%HIGH%) then Goto(LittleLoop)
  7897. *AfterLoop
  7898.  SetNv(ccnum%NV%HIGH%=)
  7899.  SetNv(cc%NV%HIGH%=)
  7900.  SetEqual(a=%NV%CCs%)
  7901.  Dec(a)
  7902.  SetNv(CCs=%VAR%A)   ; decrease total # of cc's
  7903.  SetNv(high=)
  7904.  Say(&CR&&14&%NV%TEMPNAME% has been removed from the list!&CR&)
  7905.  SetNv(tempname=)
  7906. ; SecPause(1)
  7907.  Goto(EditCCs)
  7908.  
  7909.  
  7910. *BadNumber
  7911. Say(&CR&&12&That is an invalid number! Please try again...)
  7912. SecPause(1)
  7913. Goto(EditCCs)
  7914.  
  7915. *Add
  7916. Setfill([ENTER] quits)
  7917. CMenuAsk(%NOCR%%CRON%&CR&&15&CC: &14&*)
  7918. ;NotIf(/:EXPERT/)=(Y) then CMenuAsk (%NOCR%%CRON%&3&To whom do you wish to send a copy of this message?&12&: &15&*)
  7919. ;If(/:EXPERT/)=(Y) then CMenuAsk (%NOCR%%CRON%       &3&CC&12&: &15&*)
  7920.  
  7921. If(%RESP%)=([ENTER] QUITS) then Say(             *)
  7922. Say()
  7923.  
  7924. If(%RESP%)=([ENTER] QUITS) then Goto(EditCCs)
  7925. If(%RESP%)=(<CR>) then Goto(EditCCs)
  7926.  
  7927. If(%RESP%)=(%NV%ADDRESSEE%) then Goto(AlreadyOnList)
  7928. SetEqual(/nvcheck=%RESP%)
  7929. Jump(CheckDup)
  7930. SetEqual(q=%NV%Q%)
  7931. SetNv(q=)
  7932. SetEqual(/nvcheck=)
  7933.  
  7934. killperc
  7935. if (%RESP%)=(SYSOP) then jump (sysn)
  7936.  
  7937. if (%resp%)=(<CR>) then linefeed(1)
  7938. if (%RESP%)=(<CR>) then Return
  7939. SetEqual(j=nv%ccnum%VAR%Q%)
  7940. SetEqual(x=nv%cc%VAR%Q%)
  7941.  
  7942. setequal(/nvcc%var%q=%RESP%)
  7943. setequal(/nvccnum%var%q=0)
  7944. if (%RESP%)=(?) then goto (finduser)
  7945. SetEqual(/nvme=%VAR%B)
  7946. SetEqual(b=%RESP%)
  7947. SetEqual(/nvccnum%var%q=-1)
  7948. SetEqual(/nvcc%var%q=%VAR%B)
  7949. SetEqual(b=%NV%ME%)
  7950. SetEqual(/nvme=)
  7951. setequal(g=%NAME%)
  7952. upcase(g)
  7953. seekfile(bad.to,%VAR%G;%RESP%)
  7954. iftrue(return)
  7955.  
  7956. Prc(%%VAR%J)
  7957. Prc(%%VAR%X)
  7958. SeekUser(%ARESP%)
  7959. ifnottrue(goto (notfound2))
  7960.  
  7961. setequal(/nvccnum%var%q=%NDNUMB%)
  7962. SetNv(CCs=%VAR%Q)  ; up # of CCs by one
  7963.  
  7964. ;Say(#%VAR%Q added!)
  7965.  
  7966. Goto(editccs)
  7967.  
  7968. *NormFin
  7969. Say(AT NORM FIN!!!)
  7970. Prc(%%VAR%X)
  7971. SeekUser(%ARESP%)
  7972.  
  7973. ifnottrue(goto (notfound2))
  7974.  
  7975. *Back2
  7976. setequal(/nvccnum%var%z=%NDNUMB%)
  7977. SetNv(CCs=%VAR%Q)
  7978.  
  7979. *BadSel
  7980. Say(&CR&&12&Invalid selection! Please try again...&CR&)
  7981. Goto(NoMore)
  7982.  
  7983.   *alreadyonlist
  7984. Say(&CR&&12&The last carbon copy request has been cancelled-- this message is already)
  7985. Say(being sent to *)
  7986. NiceSay(%RESP%.&CR&)
  7987. Enter
  7988. Goto(editccs)
  7989.  
  7990.   *CheckDup
  7991. SetNv(q=%VAR%Q)
  7992. If(%NV%CCs%)<(2) then Ret
  7993. SetEqual(q=1)
  7994. *Dup2
  7995. SetEqual(x=nv%cc%VAR%Q%)
  7996. Prc(%%VAR%X)
  7997. If(%ARESP%)=(%NV%CHECK%) then Goto(AlreadyOnList)
  7998. Inc(q)
  7999. If(&q)>(&z) then Ret
  8000. Goto(dup2)
  8001.  
  8002.   *notfound2
  8003. if (%RESP%)=(@NAME@) then goto(back2)
  8004. If (%MSGFNET%)=(Y) then goto (back2)
  8005. ;don't bother confirming the name if the messages is being sent by NetMail.
  8006. say(&CR&&14&That name could not be found.  )
  8007. setequal(c=0)
  8008. say(&15&Would you like to send a carbon copy to this person anyway? (&12&Y&15&/&12&N&15&)&14&*)
  8009. back(4)
  8010. yesnoask(*)
  8011. if (%RESP%)=(Yes) then
  8012.    setequal(/nvccnum%var%q=%NDNUMB%)
  8013.    SetNv(CCs=%VAR%Q)
  8014.    goto(editccs)
  8015.   endif
  8016. ;AddVar(%VAR%Z+-1=z)
  8017. SetNv(ccnum%VAR%Q=0)
  8018. SetNv(cc%VAR%Q=)
  8019. Say(&12&&CR&The last carbon copy request has been cancelled.&CR&)
  8020. Enter
  8021. goto (EditCCs)
  8022. QWKPERSCTL    Say(&15&Would you like the BBS to only include personal messages addressed to you in)
  8023. Say(your .QWK offline mail packets? (&12&Y&15&/&12&N&15&)&14&*)
  8024. Back(4)
  8025. YesNoAsk(*)
  8026. SetEqual(/flag3=%RESP%)
  8027. Log(--,Changed .QWK Packet Personal Mail Only to %RESP%)
  8028. return
  8029. SELECTCTL╘loadsub(control\exitwip.ctl)
  8030.  
  8031. *TheTop
  8032.  
  8033. clearscr
  8034. say(&CR&&14&Accessable Message Areas As Of %DATE% On %BBS%&CR&)
  8035. say(&11&###:Message Area Name                                           :Area Flags)
  8036. say(---:------------------------------------------------------------:----------&15&)
  8037. spause(4)
  8038. mList  ;list message areas
  8039. say(&11&---:------------------------------------------------------------:----------&15&)
  8040. say(        Total                                                    %MAXAREA%&CR&)
  8041. say(&12&Flags: *=Selected, P=Pvt Ok, F=Force Pvt, N=Force Pub, B=Netmail, I=Ignored&CR&)
  8042. *bk
  8043. menuask(%CRON%&3&Please enter area number to change or &11&(Q)uit&12&: &15&*)
  8044. bigif(<CR>:quit,q:quit,d:ds,s:sl)
  8045. number(%RESP%)
  8046. iftrue(goto (DoArea))
  8047. loadsub(control\macros\badsel.ctl)
  8048. goto (bk)
  8049.  
  8050. *ds
  8051. desel
  8052. goto (bk)
  8053.  
  8054. *sl
  8055. sel
  8056. goto (bk)
  8057.  
  8058. *DoArea
  8059. linefeed(1)
  8060. msel(%RESP%)
  8061. goto (TheTop)
  8062.  
  8063. *quit
  8064. if (%nv%wipe%)=() then return
  8065. setnv(wipe=)
  8066. setnv(wipmode=1)
  8067. return
  8068. QWKSCANCTL▀Say(&12&By default, Powerboard's offline mail packets will include a listing of all)
  8069. Say(new files on the BBS since the last time you scanned for new files. If you do)
  8070. Say(not want this list in your mail packet, you can skip it by specifying Yes at)
  8071. Say(the following prompt.)
  8072. Say(&CR&&15&Would you like to skip the new files scan? (&12&Y&15&/&12&N&15&)&14&*)
  8073. Back(4)
  8074. YesNoAsk(*)
  8075. SetEqual(/flag4=%RESP%)
  8076. Log(--,Changed .QWK Packet Skip New Files Scan to %RESP%)
  8077. return
  8078. MCDATRCTLSeek(%CPAT%MCHAT.DAT)
  8079. IfNotTrue(Goto(NotThere))
  8080. Size(%CPAT%MCHAT.DAT)
  8081. SetNv(totbytes=%ARESP%)
  8082. SetEqual(d=1) ; start from first byte
  8083. ;AddVar(%NODE%+-1=a)  ; offset of 1 from node
  8084. ;MultVar(%VAR%A*29=d)
  8085. ;Inc(d)
  8086. *ShowIt
  8087. Fread(%CPAT%MCHAT.DAT,%VAR%D,1,e)
  8088. If(&e)=(N) then
  8089.   AddVar(%VAR%D+29=d)
  8090.   Goto(CheckAndLoop)
  8091.  endif
  8092. DivVar(%VAR%D/29=c)
  8093. Inc(c)
  8094. SetLen(c=3)
  8095. Say(&7&%VAR%C *)
  8096. AddVar(%VAR%D+1=d)
  8097. Fread(%CPAT%MCHAT.DAT,%VAR%D,25,e)
  8098. Say(&14&%VAR%E *)
  8099. AddVar(%VAR%D+25=d)
  8100. Fread(%CPAT%MCHAT.DAT,%VAR%D,3,e)
  8101. ;Say(&15&%VAR%E)
  8102. Rtrim(e)
  8103. If(%VAR%E)=(0) then
  8104.   Say(&15&      Main)
  8105.   Goto(AddOn)
  8106.  endif
  8107. Seek(%CPAT%CHAN%VAR%E.DAT)
  8108. If(%ARESP%)<>(Yes) then Say(&15&%VAR%E)
  8109. If(%ARESP%)=(Yes) then Jump(GetChanName)
  8110. *AddOn
  8111. AddVar(%VAR%D+3=d)
  8112. Inc(r)
  8113. If(&r)>=(/:SCREENLEN/) then
  8114.   If(%NV%PAUSE%)<>(N) then PausePrompt
  8115.   SetNv(pause=%RESP%)
  8116.   SetEqual(r=1)
  8117.   If(%ARESP%)=(STOP) then Goto(back)
  8118.  endif
  8119. *CheckAndLoop
  8120. If(&d)<(%NV%TOTBYTES%) then Goto(ShowIt)
  8121. SetNv(totbytes=)
  8122. ;Enter
  8123. Return
  8124.  
  8125. *NotThere
  8126. Say(&CR&&12&ERROR: Could not locate chat data file!!!!&CR&)
  8127. SecPause(1)
  8128. Return
  8129.  
  8130. *GetChanName
  8131. Inpline(%CPAT%CHAN%VAR%E.DAT,1)
  8132. If(%ARESP%)<>(P) then
  8133.   Say(&12& Pvt  &15&%ARESP%'s)
  8134.   Ret
  8135.  endif
  8136. Inpline(%CPAT%CHAN%VAR%E.DAT,2)
  8137. Say(&15&      %ARESP%)
  8138. Ret
  8139.  
  8140. MCFREECTL~;this subroutine searches through the MCHAT.DAT file to determine the nearest
  8141. ;available channel with no other users in it. The result is stored in
  8142. ;%NV%CHANNEL%
  8143.  
  8144. SetEqual(d=1)
  8145. *Loopy
  8146. Seek(%CPAT%CHAN%VAR%D.DAT)
  8147. IfNotTrue(Goto(SetIt))
  8148. Inc(d)
  8149. If(&d)<=(255) then Goto(loopy)
  8150. SetNv(channel=-1) ; reports no available channels
  8151. Return
  8152.  
  8153. *SetIt
  8154. SetNv(channel=%VAR%D)
  8155. Return
  8156. MCDATCTLd; fwrite(filename,start_pos,# of bytes,variable letter)
  8157. ; fread(filename,start_pos,# of bytes,variable letter)
  8158. ; do a setlen(# of bytes) before fwriting
  8159.  
  8160. Seek(%CPAT%MCHAT.DAT)
  8161. IfNotTrue(Goto(Nothing))
  8162. Size(%CPAT%MCHAT.DAT)
  8163. ;each record will be 29 bytes (1=in_chat?, 25=user name, 3=channel #)
  8164. AddVar(%ARESP%+1=a) ; starting byte for new record at end
  8165. SetNv(startbyte=%VAR%A)
  8166. DivVar(%ARESP%/29=a)  ; A will be # of records currently in file
  8167. *CheckPad
  8168. If(%NODE%)<=(%VAR%A) then
  8169.   AddVar(%NODE%+-1=d)
  8170.   MultVar(%VAR%D*29=d)
  8171.   Inc(d)
  8172.   SetNv(startbyte=%VAR%D)
  8173.   Goto(WriteInfo) ; if no need to pad
  8174.  endif
  8175. AddVar(%NODE%+-%VAR%A=b)
  8176. Dec(b)   ; B is the number of records to pad (not including the dest)
  8177. If(&b)=(0) then
  8178.   MultVar(%VAR%A*29=d)
  8179.   Inc(d)
  8180.   SetNv(startbyte=%VAR%D)
  8181.   Goto(WriteInfo)
  8182.  endif
  8183. ;Say(&CR&Padding %VAR%B records...)
  8184. SetEqual(c=%VAR%A)
  8185. *LittleLoop
  8186. SetEqual(e=N)
  8187. SetLen(e=1)
  8188. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,1,e)
  8189. SetEqual(d=%NV%STARTBYTE%)
  8190. AddVar(%VAR%D+1=d)
  8191. SetNv(startbyte=%VAR%D)
  8192. SetEqual(e= )
  8193. SetLen(e=25)
  8194. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,25,e)
  8195. SetEqual(d=%NV%STARTBYTE%)
  8196. AddVar(%VAR%D+25=d)
  8197. SetNv(startbyte=%VAR%D)
  8198. SetLen(e=3)
  8199. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,3,e)
  8200. SetEqual(d=%NV%STARTBYTE%)
  8201. AddVar(%VAR%D+3=d)
  8202. SetNv(startbyte=%VAR%D)
  8203. Dec(b)  ; one fewer record to pad
  8204. If(&b)>(0) then Goto(LittleLoop)
  8205. Goto(WriteInfo)
  8206.  
  8207. *Nothing
  8208. ;Say(File Not There!)
  8209. SetNv(startbyte=1)
  8210. SetEqual(a=0)
  8211. Goto(CheckPad)
  8212.  
  8213. *WriteInfo
  8214. SetEqual(e=Y)
  8215. SetLen(e=1)
  8216. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,1,e)
  8217. SetEqual(d=%NV%STARTBYTE%)
  8218. AddVar(%VAR%D+1=d)
  8219. SetNv(startbyte=%VAR%D)
  8220. SetEqual(e=%NAME%)
  8221. SetLen(e=25)
  8222. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,25,e)
  8223. SetEqual(d=%NV%STARTBYTE%)
  8224. AddVar(%VAR%D+25=d)
  8225. SetNv(startbyte=%VAR%D)
  8226. SetEqual(e=%NV%CURCHAN%)
  8227. SetLen(e=3)
  8228. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,3,e)
  8229. Return
  8230.  
  8231. MCEMPTYCTL╒
  8232. *WhoIsHere
  8233. SetNv(oneperson=No) ; at least one person in channel?
  8234. Size(%CPAT%MCHAT.DAT)
  8235. SetEqual(c=%ARESP%)
  8236. SetEqual(d=2)
  8237. *MyLoop3
  8238. Fread(%CPAT%mchat.dat,%VAR%D,25,e)
  8239. Rtrim(e)
  8240. SetNv(mcname=%VAR%E)
  8241. AddVar(%VAR%D+25=d)
  8242. Fread(%CPAT%mchat.dat,%VAR%D,3,e)
  8243. Rtrim(e)
  8244. If(&e)<>(%NV%CURCHAN%) then Goto(IncAndBack)
  8245. If(%NV%MCNAME%)=(%NAME%) then Goto(IncAndBack)
  8246. SetNv(oneperson=Yes)
  8247. Return
  8248. *IncAndBack
  8249. AddVar(%VAR%D+4=d)
  8250. If(&d)<(&c) then Goto(MyLoop3)
  8251. Return
  8252. DELCHKCTLv;checks to see if channel should be deleted/removed from list
  8253.  
  8254. *DelChk
  8255. *KillPublic
  8256. ;Say(OLDCHAN=%NV%OLDCHAN%)
  8257. InpLine(%CPAT%chan%nv%oldchan%.dat,2)
  8258. SetNv(channame=%ARESP%)
  8259. Kill(%CPAT%public.2)
  8260. Lines(%CPAT%public.dat)
  8261. SetNv(lines=%ARESP%)
  8262. SetNv(removed=No)
  8263. Inpopen(%CPAT%public.dat)
  8264. DO
  8265.   Inpread
  8266.   SetNv(line=%ARESP%)
  8267.   SetNv(z=%VAR%Z)
  8268.   SetNv(w=%VAR%W)
  8269.   SetEqual(z=%ARESP%)
  8270.   Find(&z,,)
  8271.   AddVar(%ARESP%+-1=w)
  8272.   Get(&z,1,%VAR%W)
  8273.   SetEqual(z=%NV%Z%)
  8274.   SetEqual(w=%NV%W%)
  8275.   SetNv(z=)
  8276.   SetNv(w=)
  8277. ;  Say(ARESP=%ARESP% CHANNAME=%NV%CHANNAME%)
  8278.   If(%ARESP%)<>(%NV%CHANNAME%) then
  8279.     AppendTo(%CPAT%public.2,%NV%LINE%)
  8280.     SetNv(removed=Yes)
  8281.    endif
  8282. EOFLOOP
  8283. Inpclose
  8284. SetNv(line=)
  8285. SetNv(channame=)
  8286. Kill(%CPAT%public.dat)
  8287. Rename(%CPAT%public.2,%CPAT%public.dat)
  8288. SetNv(lines=)
  8289. SetNv(removed=)
  8290. If(%NV%LINES%)=(1) then If(%NV%REMOVED%)=(Yes) then Kill(%CPAT%public.dat)
  8291. Lines(%CPAT%public.dat)
  8292. If(%ARESP%)=(1) then
  8293.   Inpline(%CPAT%public.dat,1)
  8294.   SetEqual(y=%ARESP%)
  8295.   Rtrim(y)
  8296.   If(&y)=() then Kill(%CPAT%public.dat)
  8297.  endif
  8298. Kill(%CPAT%chan%NV%OLDCHAN%.DAT)
  8299. SetNv(oldchan=)
  8300. SetNv(oneperson=)
  8301. Return
  8302. TIMECTL>if (%nv%wipmode%)=(1) then goto (wip)
  8303. ;TIME.CTL
  8304. ;Shows the current date and time
  8305.  
  8306. Say(&CR&&14&It is currently *)
  8307. NiceTime(%TIME%)
  8308. Say(%ARESP% on *)
  8309. NiceDate(%DATE%)
  8310. Say(%ARESP%)
  8311. Say(You have /:LEFT/ minutes remaining&CR&)
  8312. enter
  8313. Return
  8314.  
  8315. *wip
  8316. setnv(norefresh=1)
  8317. setequal(c=13~It is currently )
  8318. nicetime(%time%)
  8319. setequal(c=%var%c%aresp% on )
  8320. nicedate(%date%)
  8321. setequal(c=%var%c%aresp%.  You have /:left/ minutes remaining.~Time~1~)
  8322. jump (okbox0)
  8323. return
  8324.  
  8325.  
  8326. *okbox0
  8327. Jump (wipc)
  8328. *tryagain4
  8329. comlineinput(180,l)
  8330. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  8331. if (%resp%)=() then goto (tryagain4)
  8332. ret
  8333.  
  8334.  
  8335. *GCHAR
  8336. COMPRINT(%NV%TEXT%)
  8337. SETEQUAL(A=0)
  8338. DO
  8339. COMKEY
  8340. ASCII
  8341. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  8342. INC(A)
  8343. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  8344. IF(%ARESP%)=(&B) THEN RET
  8345. IF(&A)>(200) THEN RET
  8346. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  8347. DELAY18TH(2)
  8348. LOOP
  8349. *WIPC
  8350. LOCALKEY(1)
  8351. IFNOTTRUE(GOTO(NOLKEY))
  8352. SYSKEYCHECK
  8353. SETEQUAL(/RESP=)
  8354. SETEQUAL(/RESP=)
  8355. *NOLKEY
  8356. CCARRIER
  8357. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  8358. CHECKSUM(%VAR%C)
  8359. SETEQUAL(B=6)
  8360. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  8361. SETNV(PBACK=)
  8362. JUMP(GCHAR)
  8363. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  8364. setequal(c=%aresp%)
  8365. SETEQUAL(/IBUFF=%NV%PBACK%)
  8366. LEN(%NV%PBACK%)
  8367. SETEQUAL(/IBUFF0=%ARESP%)
  8368. SETEQUAL(/ARESP=%VAR%C)
  8369. RET
  8370. *NOC0
  8371. log(<<,Carrier lost.)
  8372. quitbbs
  8373. README   Scott---
  8374.    All these files belong in the CONTROL\MACROS\ directory. I included the
  8375. CONAME.CTL as an example of how the global commands and online help are
  8376. generally implemented. The only differences really are when there are multiple
  8377. prompts in a control file. In that case, the *OlHelp and *Anywhere labels don't
  8378. have a Goto at the end, but rather a Ret. Also... The %nv%helpoption% variable
  8379. is NOT set at the *OlHelp label. Both Goto and nvhelpoption setting are
  8380. handled in a block if command....
  8381.     - Doug
  8382. MCPADCTL╖*MCPAD
  8383. SetEqual(e=N)
  8384. SetLen(e=1)
  8385. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,1,e)
  8386. SetEqual(d=%NV%STARTBYTE%)
  8387. AddVar(%VAR%D+1=d)
  8388. SetNv(startbyte=%VAR%D)
  8389. SetEqual(e= )
  8390. SetLen(e=25)
  8391. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,25,e)
  8392. SetEqual(d=%NV%STARTBYTE%)
  8393. AddVar(%VAR%D+25=d)
  8394. SetNv(startbyte=%VAR%D)
  8395. SetLen(e=3)
  8396. Fwrite(%CPAT%MCHAT.DAT,%NV%STARTBYTE%,3,e)
  8397. SetEqual(d=%NV%STARTBYTE%)
  8398. AddVar(%VAR%D+3=d)
  8399. SetNv(startbyte=%VAR%D)
  8400. Return
  8401. INCHATCTLè*InChat
  8402. Size(%CPAT%MCHAT.DAT)
  8403. SetEqual(c=%ARESP%)
  8404. SetNv(inchat=No)
  8405. SetEqual(d=2)
  8406. *MyLoop2
  8407. Fread(%CPAT%mchat.dat,%VAR%D,25,e)
  8408. Rtrim(e)
  8409. SetNv(mcname=%VAR%E)
  8410. AddVar(%VAR%D+25=d)
  8411. Fread(%CPAT%mchat.dat,%VAR%D,3,e)
  8412. Rtrim(e)
  8413. SetNv(inchan=%VAR%E)
  8414. If(%NV%MCNAME%)=(%NV%SEARCH%) then
  8415.   SetNv(inchat=Yes)
  8416.   return
  8417.  endif
  8418. *GoOn
  8419. AddVar(%VAR%D+4=d)
  8420. If(&d)<(&c) then Goto(MyLoop2)
  8421. Return
  8422. MWHOWIPCTL!setnv(liste=)
  8423. if (%MULTI%)=(TRUE) then goto (start)
  8424. setequal(c=13~Sorry, %FNAME%, this system is not running the Multinode version of the)
  8425. setequal(c=%var%c Powerboard BBS Package.  If you feel this would be a good addition to the BBS, please contact your Sysop, %SYSOP%.~Not a Multinode System~1~)
  8426. jump (okbox0)
  8427. goto (ewho)
  8428. *start
  8429. Seek(%CPAT%whoison.dat)
  8430. If (%ARESP%)=(No) Then return
  8431. log(--,Viewed other node users (WHO))
  8432.  
  8433. *thetop
  8434.  
  8435. setnv(NoInfo=1)
  8436. loadsub(control\ewipscr.ctl,setnv(wipf=multtmpl))
  8437.  
  8438. *initBox
  8439. setequal(c=14~listbox~1000~16~)
  8440. jump (wipc)
  8441.  
  8442. goto (searchWhoIsOn)
  8443.  
  8444. *GetResp0
  8445. setequal(c=0A~)
  8446. jump (wipc)
  8447. flushout
  8448.  
  8449. jump (getInput)
  8450. writeln(Response from user: "%resp%")
  8451. if (%nv%wiprestreq%)=(1) then goto (thetop)
  8452. if (%resp%)=(Exit) then goto (ret0)
  8453. setequal(b=%resp%)
  8454. find(&b,,)
  8455. if (%aresp%)<=(1) then goto (NotListC)
  8456. addvar(%aresp%+-1=e)
  8457. addvar(%aresp%+1=f)
  8458. get(&b,1,%var%e)
  8459. setnv(wipc=%aresp%)
  8460. get(&b,%var%f,1000)
  8461. setequal(b=%aresp%)
  8462. if (%var%b)=(-1) then goto (conts)
  8463. goto (getresp0)
  8464. *NotListC
  8465. find(&b,;)
  8466. if (%aresp%)<=(1) then goto (NoCmnd)
  8467. addvar(%aresp%+-1=e)
  8468. addvar(%aresp%+1=f)
  8469. get(&b,1,%var%e)
  8470. SetNv(WipC=%aresp%)
  8471. setnv(cText=)
  8472. len(%var%b)
  8473. if (%var%f)<=(%aresp%) then
  8474. get(&b,%var%f,1000)
  8475. SetNv(Ctext=%aresp%)
  8476. endif
  8477. ;if (%nv%wipc%)=(searchtext) then setNv(key=%nv%Ctext%)
  8478. *NoCmnd
  8479. setnv(wtxt=)
  8480. goto (getResp0)
  8481.  
  8482.  
  8483. *SearchWhoIsOn
  8484. setequal(w=0)
  8485. setnv(curnode=%var%w)
  8486. *conts
  8487. size(%CPAT%whoison.dat)
  8488. divvar(%ARESP%/131=y)
  8489. setequal(u=0)
  8490. setequal(w=%nv%curnode%)
  8491. *stl4
  8492. inc(u)
  8493. inc(w)
  8494. nodestat(%var%w)
  8495. setequal(t=%var%w)
  8496. setlen(t=5)
  8497. setequal(z=%var%t)
  8498. setequal(t=%NAVAIL%)
  8499. setlen(t=2)
  8500. setequal(z=%var%z%var%t)
  8501. setequal(t=%NNAME%)
  8502. setlen(t=25)
  8503. setlen(t=26)
  8504. setequal(z=%var%z%var%t)
  8505. setequal(t=%NFROM%)
  8506. setlen(t=25)
  8507. setlen(t=26)
  8508. setequal(z=%var%z%var%t)
  8509. setequal(t=%NBAUD%)
  8510. setlen(t=7)
  8511. setequal(z=%var%z%var%t%NACTIVITY%)
  8512. writeln(%var%z)
  8513. setequal(c=07~listbox~%var%z~)
  8514. jump (wipc)
  8515. If (&w)=>(&y) then goto (ewho)
  8516. if (%var%u)=>(16) then goto (donef)
  8517. goto (stl4)
  8518.  
  8519.         *ewho
  8520. if (%nv%liste%)=(1) then goto (donef)
  8521. setnv(liste=1)
  8522. setequal(c=13~You have reached the end of the list.~End of List~1~)
  8523. jump (okbox0)
  8524. goto (donef)
  8525.  
  8526. *okbox0
  8527. Jump (wipc)
  8528. *tryagain4
  8529. comlineinput(180,l)
  8530. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  8531. if (%resp%)=() then goto (tryagain4)
  8532. ret
  8533.  
  8534. *notext
  8535. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  8536. jump (okbox0)
  8537. goto (getresp0)
  8538.  
  8539. *GCHAR
  8540. COMPRINT(%NV%TEXT%)
  8541. SETEQUAL(A=0)
  8542. DO
  8543. COMKEY
  8544. ASCII
  8545. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  8546. INC(A)
  8547. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  8548. IF(%ARESP%)=(&B) THEN RET
  8549. IF(&A)>(200) THEN RET
  8550. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  8551. DELAY18TH(2)
  8552. LOOP
  8553. *WIPC
  8554. LOCALKEY(1)
  8555. IFNOTTRUE(GOTO(NOLKEY))
  8556. SYSKEYCHECK
  8557. SETEQUAL(/RESP=)
  8558. SETEQUAL(/RESP=)
  8559. *NOLKEY
  8560. CCARRIER
  8561. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  8562. CHECKSUM(%VAR%C)
  8563. SETEQUAL(B=6)
  8564. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  8565. SETNV(PBACK=)
  8566. JUMP(GCHAR)
  8567. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  8568. setequal(c=%aresp%)
  8569. SETEQUAL(/IBUFF=%NV%PBACK%)
  8570. LEN(%NV%PBACK%)
  8571. SETEQUAL(/IBUFF0=%ARESP%)
  8572. SETEQUAL(/ARESP=%VAR%C)
  8573. RET
  8574. *NOC0
  8575. log(<<,Carrier lost.)
  8576. quitbbs
  8577.  
  8578. *getinput
  8579. writeln(Waiting for input from remote user.)
  8580. setequal(y=180)
  8581. jump (wipask)
  8582. if (%aresp%)<>(24) then ret
  8583. loadsub(control\wipask.ctl,goto(twarn))
  8584. setequal(y=60)
  8585. jump (wipask)
  8586. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  8587. ret
  8588.  
  8589. *donef
  8590. setnv(curnode=%var%w)
  8591. write(Updating list box on user's screen ... )
  8592. setequal(c=07~listbox~-1~)
  8593. jump (wipc)
  8594. setequal(c=0F~listbox~Who Is Online~1~1~2~)
  8595. jump (wipc)
  8596. setequal(c=0F~RecCount~16~1~0~1~)
  8597. jump (wipc)
  8598. setequal(c=0F~Exit~Exit~1~1~3~)
  8599. jump (wipc)
  8600. setequal(c=0F~Scrl_UP~~1~1~4~)
  8601. jump (wipc)
  8602. setequal(c=0F~Scrl_Dn~~1~1~5~)
  8603. jump (wipc)
  8604. setequal(c=0F~Page_Up~~1~1~6~)
  8605. jump (wipc)
  8606. setequal(c=0F~Page_Dn~~1~1~7~)
  8607. jump (wipc)
  8608. setequal(c=0A~)
  8609. jump (wipc)
  8610. writeln(Done!)
  8611. goto(getresp0)
  8612.  
  8613. *wipask
  8614. loadsub(control\wipask.ctl)
  8615. ret
  8616.  
  8617. *ret0
  8618. setnv(liste=)
  8619. return
  8620. SENDTXTCTLc*SendTxt
  8621. Size(%CPAT%mchat.dat)
  8622. SetEqual(c=%ARESP%)
  8623. SetEqual(d=2)
  8624. *MyLoop2
  8625. Fread(%CPAT%mchat.dat,%VAR%D,25,e)
  8626. Rtrim(e)
  8627. SetNv(mcname=%VAR%E)
  8628. AddVar(%VAR%D+25=d)
  8629. Fread(%CPAT%mchat.dat,%VAR%D,3,e)
  8630. ;Addvar(%VAR%D+3=d)
  8631. Rtrim(e)
  8632. SetNv(mcchan=%VAR%E)
  8633. ;Say(MCCHAN=!%NV%MCCHAN%!  DESTCHAN=!%NV%DESTCHAN%!  MCNAME=!%NV%MCNAME%!)
  8634. If(%NV%MCCHAN%)=(%NV%DESTCHAN%) then
  8635.   If(%NV%MCNAME%)=(%NAME%) then If(%NV%SELF%)=(No) then Goto(GoOn)
  8636.   ;If(%NV%LIST%)=(Yes) then Goto(InList)
  8637.   If(%NV%SENDTO%)<>(%NV%MCNAME%) then If(%NV%SENDTO%)<>(N) then Goto(GoOn)
  8638.   DivVar(%VAR%D/29=e)
  8639.   Inc(e)
  8640. ;  Say(Appending to %NODE%.%VAR%E,%NV%MESSAGE%)
  8641.   AppendTo(%CPAT%%NODE%.%VAR%E,%NV%MESSAGE%)
  8642.  endif
  8643. *GoOn
  8644. AddVar(%VAR%D+4=d)
  8645. If(&d)<(&c) then Goto(MyLoop2)
  8646. Goto(Back)
  8647.  
  8648. *InList
  8649. Inpopen(%CPAT%chan%NV%DESTCHAN%.DAT)
  8650. do
  8651.  inpread
  8652.  If(%ARESP%)=(%NV%MCNAME%) then Goto(YesInList)
  8653. EOFLOOP
  8654. Inpclose
  8655. Goto(GoOn)
  8656. *YesInList
  8657. Inpclose
  8658. DivVar(%VAR%D/29=e)
  8659. Inc(e)
  8660. AppendTo(%CPAT%%NODE%.%VAR%E,%NV%MESSAGE%)
  8661. Goto(GoOn)
  8662.  
  8663. *Back
  8664. SetNv(mcname=)
  8665. SetNv(mcchan=)
  8666. SetNv(message=)
  8667. SetNv(list=)
  8668. SetNv(self=)
  8669. SetNv(sendto=)
  8670. Return
  8671. FLISTUCTL│numb(Yes)
  8672. setequal(y=5)
  8673. clearscr
  8674. setequal(k=0)
  8675. display(%FILPATH%header)
  8676. ;if (%CD%)=(No) then display(%FILPATH%header)
  8677. ;if (%CD%)=(Yes) then display(%CDPath%/:lastdown/\header)
  8678. if (%Y%)=(25) then goto (blist)
  8679. if (%Y%)=(23) then goto (blist)
  8680. addvar(%y%+-1=k)
  8681. ;addvar(%y%+0=k)
  8682. spause(%var%k)
  8683. setequal(K=0)
  8684.         
  8685.         *blist
  8686. jump(pauseprompt1)
  8687. if (%CD%)=(No) then fdisp(%FILPATH%files.bbs,12,15,7,11,3,%var%k)
  8688. if (%CD%)=(Yes) then fdisp(%CDPath%/:lastdown/\files.bbs,12,15,7,11,3,%var%k)
  8689. ;if (%CD%)=(No) then fsearch(%FILPATH%files.bbs,12,15,7,11,3,,1,1,%var%k)
  8690. ;if (%CD%)=(Yes) then fsearch(%CDPath%/:lastdown/\files.bbs,12,15,7,11,3,,1,1,%var%k)
  8691. spause(0)
  8692. if (%ARESP%)=(No) then goto (err)
  8693.  Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  8694.  DefPif (s:stop,n:nonstop)
  8695. ;defpause($7$&0&END$0$&3& &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&ENTER&3& to Quit?&12&: &7&)
  8696. ;defPif(v:view2,h:fhlp,t:tag2,d:down2)
  8697. setequal(/nonstop=0)
  8698. ;pauseprompt
  8699. jump(pauseprompt)
  8700. numb(No)
  8701. Return
  8702.         *fhlp
  8703. setequal(k=%ARESP%)
  8704. jump(pauseprompt)
  8705. display(display\help\lst,/:SEC/)
  8706. goto (blist2)
  8707.  
  8708.         *err
  8709. jump(pauseprompt)
  8710. display(display\NOFILES)
  8711. enter
  8712. Numb(No)
  8713. Return
  8714.         
  8715. *view2
  8716. setequal(k=%ARESP%)
  8717. loadsub(control\macros\zview.ctl)
  8718. goto (blist2)
  8719. *tag2
  8720. setequal(k=%ARESP%)
  8721. loadsub(control\macros\numbtag.ctl)
  8722. goto (blist2)
  8723. *down2
  8724. setequal(k=%ARESP%)
  8725. loadsub(control\macros\down.ctl)
  8726. selfarea(/:Lastdown/)
  8727. goto (blist2)
  8728. *blist2
  8729. spause(0)
  8730. clearscr
  8731. goto (blist)
  8732.  
  8733. *Pauseprompt1
  8734. DefPause($7$&0&More$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop, &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&C&3&:Continue?&12&: &7&)
  8735. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  8736. ret
  8737.  
  8738. *Pauseprompt
  8739. DefPause($7$&0&Send more text$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop or &11&C&3&:Continue?&12&: &7&)
  8740. defPif(s:stop,n:nonstop)
  8741. ret
  8742. SENDWIPCTL
  8743. ;SENDWIP.CTL
  8744. ;subroutine for sending private messages from one node to another outside chat
  8745.  
  8746. *thetop
  8747.  
  8748. setnv(NoInfo=1)
  8749. loadsub(control\ewipscr.ctl,setnv(wipf=sendinst))
  8750.  
  8751. *getresp0
  8752. setequal(c=0A~)
  8753. Jump (wipc)
  8754.  
  8755. jump (getinput)
  8756. if (%nv%wiprestreq%)=(1) then goto (thetop)
  8757.  
  8758. writeln(Response from user: "%resp%")
  8759. if (%resp%)=(Send) then goto (Check)
  8760. if (%resp%)=(/WHO) then goto (whoc)
  8761. if (%resp%)=(quit) then return
  8762. if (%resp%)=(Exit) then return
  8763. setequal(b=%resp%)
  8764. find(&b,,)
  8765. if (%aresp%)<=(1) then goto (NotListC)
  8766. addvar(%aresp%+-1=e)
  8767. addvar(%aresp%+1=f)
  8768. get(&b,1,%var%e)
  8769. setnv(wipc=%aresp%)
  8770. get(&b,%var%f,1000)
  8771. setequal(b=%aresp%)
  8772. goto (getresp0)
  8773. *NotListC
  8774. find(&b,;)
  8775. if (%aresp%)<=(1) then goto (NoCmnd)
  8776. addvar(%aresp%+-1=e)
  8777. addvar(%aresp%+1=f)
  8778. get(&b,1,%var%e)
  8779. SetNv(WipC=%aresp%)
  8780. setnv(cText=)
  8781. len(%var%b)
  8782. if (%var%f)<=(%aresp%) then
  8783. get(&b,%var%f,1000)
  8784. SetNv(Ctext=%aresp%)
  8785. endif
  8786. if (%nv%wipc%)=(node) then setNv(tonode=%nv%Ctext%)
  8787. if (%nv%wipc%)=(message) then setnv(queue0=%nv%Ctext%)
  8788. *NoCmnd
  8789. setnv(wtxt=)
  8790. goto (getResp0)
  8791.  
  8792.  
  8793.  
  8794. *Check
  8795. setequal(w=0)
  8796. size(%CPAT%whoison.dat)
  8797. divvar(%ARESP%/131=y)
  8798. if (%nv%tonode%)<(1) then goto (errandclear)
  8799. if(%NV%TONODE%)>(&y) then Goto(ErrAndClear) ; if invalid node #
  8800.  
  8801. nodestat(%nv%ToNode%)
  8802. If(%NAVAIL%)<>(Y) then Goto(NotAvailable)
  8803.  
  8804. *SendIt
  8805. SetNv(j=%VAR%J)
  8806. NiceEqual(j=%NAME%)
  8807. SetNv(sendtext=(Pvt Msg)%NODE% %VAR%J: %NV%queue0%)
  8808. Seek(%CPAT%%NODE%.%NV%TONODE%)
  8809. IfNotTrue(Kill(%CPAT%%NODE%.%NV%TONODE%)
  8810. AppendTo(%CPAT%%NODE%.%NV%TONODE%,%NV%SENDTEXT%)
  8811. SetEqual(j=%NV%J%)
  8812. SetNv(j=)
  8813. SetNv(sendtext=)
  8814. SetNv(queue0=)
  8815. SetNv(tonode=)
  8816. writeln(Instant Message Sent.)
  8817. setequal(c=13~Your instant message has been sent.~Message Sent~1~)
  8818. jump (okbox0)
  8819. return
  8820.  
  8821. *NotAvailable
  8822. writeln(That node is currently unavailable.)
  8823. setequal(c=13~That node is currently unavailable.~Node Unavailable~1~)
  8824. jump (okbox0)
  8825. SetNv(queue0=)
  8826. goto (getresp0)
  8827.  
  8828. *ErrAndClear
  8829. writeln(The node number specified is invalid.)
  8830. setequal(c=13~The node number you specified is invalid.~Invalid Node~1~)
  8831. jump (okbox0)
  8832. SetNv(queue0=)
  8833. goto (getresp0)
  8834.  
  8835. *GCHAR
  8836. COMPRINT(%NV%TEXT%)
  8837. SETEQUAL(A=0)
  8838. DO
  8839. COMKEY
  8840. ASCII
  8841. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  8842. INC(A)
  8843. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  8844. IF(%ARESP%)=(&B) THEN RET
  8845. IF(&A)>(200) THEN RET
  8846. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  8847. DELAY18TH(2)
  8848. LOOP
  8849. *WIPC
  8850. LOCALKEY(1)
  8851. IFNOTTRUE(GOTO(NOLKEY))
  8852. SYSKEYCHECK
  8853. SETEQUAL(/RESP=)
  8854. SETEQUAL(/RESP=)
  8855. *NOLKEY
  8856. CCARRIER
  8857. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  8858. CHECKSUM(%VAR%C)
  8859. SETEQUAL(B=6)
  8860. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  8861. SETNV(PBACK=)
  8862. JUMP(GCHAR)
  8863. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  8864. setequal(c=%aresp%)
  8865. SETEQUAL(/IBUFF=%NV%PBACK%)
  8866. LEN(%NV%PBACK%)
  8867. SETEQUAL(/IBUFF0=%ARESP%)
  8868. SETEQUAL(/ARESP=%VAR%C)
  8869. RET
  8870. *NOC0
  8871. log(<<,Carrier lost.)
  8872. quitbbs
  8873.  
  8874. *wipask
  8875. loadsub(control\wipask.ctl)
  8876. ret
  8877.  
  8878. *getinput
  8879. writeln(Waiting for input from remote user.)
  8880. setequal(y=180)
  8881. jump (wipask)
  8882. if (%aresp%)<>(24) then ret
  8883. loadsub(control\wipask.ctl,goto(twarn))
  8884. setequal(y=60)
  8885. jump (wipask)
  8886. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  8887. ret
  8888.  
  8889. *okbox0
  8890. Jump (wipc)
  8891. comlineinput(180,l)
  8892. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  8893. if (%resp%)=() then goto (okbox)
  8894. ret
  8895.  
  8896. *whoc
  8897. loadsub(control\macros\mwhowip.ctl)
  8898. goto(thetop)
  8899. ANYWHERECTLm;ANYWHERE.CTL
  8900. ;commands that may be accessed from anywhere on the BBS
  8901.  
  8902. *RemoveAttChar
  8903. SetNv(u=%VAR%U)
  8904. AddVar(%ARESP%+-1=u)
  8905. Get(%RESP%,2,%VAR%U)
  8906. SetEqual(/RESP=%ARESP%) ; set response var to global command
  8907. ;SetNv(queue=%ARESP%)
  8908. ;Say(Set QUEUE to %ARESP%)
  8909. ;SetEqual(a=%NV%QUEUE%)
  8910. ;DeQueue(a)
  8911. ;SetNv(queue=%VAR%A)
  8912. ;SetEqual(/RESP=%ARESP%)
  8913. SetEqual(u=%NV%U%)
  8914. SetNv(u=)
  8915.  
  8916. *Process
  8917. BigIf(TIME:Time,WHO:Who,BYE:Bye,X:Bye,G:Bye,SEND:SendPvt,S:SendPvt,FIND:Find,?:OLHELP)
  8918. Goto(BSel)
  8919.  
  8920. *Time
  8921. LoadSub(control\macros\time.ctl)
  8922. Return
  8923.  
  8924. *Who
  8925. EnufSec(20)
  8926. IfNotTrue(Goto(Bsel))
  8927. LoadSub(control\macros\mwho.ctl)
  8928. Return
  8929.  
  8930. *Bye
  8931. LoadSub(control\macros\bye.ctl)
  8932. Return
  8933.  
  8934. *SendPvt
  8935. ;private messages = NODEFROM.NODETO
  8936. LoadSub(control\macros\send.ctl)
  8937. SetNv(queue=) ; clear queue
  8938. Return
  8939.  
  8940. *Find
  8941. Say()
  8942. LoadSub(control\macros\find.ctl)
  8943. SetNv(queue=) ; clear queue
  8944. Return
  8945.  
  8946. *Olhelp
  8947. SetNv(atprompt=No)
  8948. SetNv(helpoption=0)
  8949. LoadSub(olhelp\olhelp.ctl,goto(disp))
  8950. Return
  8951.  
  8952. *bSel
  8953. LoadSub(control\macros\badsel.ctl)
  8954. ;Clear Stack on Error!
  8955. ;---PowerStak Block 3
  8956. setequal(/nvqueue=)
  8957. ;---PowerStak Block 3 End
  8958. Return
  8959. FLISTWIPCTL&inpclose
  8960.  
  8961. setnv(CurFMode=1)
  8962.  
  8963. jump (dispscr)
  8964.  
  8965. numb(No)
  8966. clearscr
  8967. setnv(fn=%filpath%files.bbs)
  8968. if (%CD%)=(Yes) then setnv(fn=%CDPATH%/:lastdown/\files.bbs)
  8969. write(Retrieving file listing for area #/:lastdown/...)
  8970. listlog()
  8971. zap(%pbtemp%wiplist.%node%)
  8972. lines(%nv%fn%)
  8973. setnv(flines=%aresp%)
  8974. listlog(%pbtemp%wiplist.%Node%)
  8975. setequal(k=1)
  8976. fdisp(%nv%fn%,12,15,7,11,3,%var%k,%nv%flines%)
  8977. listlog()
  8978. writeln(Done!)
  8979.  
  8980. goto (initbox)
  8981.  
  8982.  
  8983. *thetop
  8984.  
  8985. jump (dispscr)
  8986.  
  8987. *initBox
  8988. setequal(c=14~listbox~%nv%flines%~%nv%high%~)
  8989. jump (wipc)
  8990.  
  8991. jump (dispCurMode)
  8992.  
  8993. goto (listfa)
  8994.  
  8995. *GetResp0
  8996. if (%nv%wiprestreq%)=(1) then goto (thetop)
  8997. writeln(got to getresp0)
  8998. setequal(c=0A~)
  8999. jump (wipc)
  9000.  
  9001. goto (getInput)
  9002. *bgi
  9003. writeln(Response from user: "%resp%")
  9004. if (%nv%wiprestreq%)=(1) then goto (thetop)
  9005. if (%resp%)=(A) then goto (dotag)
  9006. if (%resp%)=(Tag) then goto (tagmode)
  9007. if (%resp%)=(Download) then goto (downmode)
  9008. if (%resp%)=(Download Mode) then goto (downmode)
  9009. if (%resp%)=(View) then goto (viewmode)
  9010. if (%resp%)=(Exit) then goto (ret4)
  9011. if (%resp%)=(quit) then goto (ret4)
  9012. setequal(b=%resp%)
  9013. find(&b,,)
  9014. if (%aresp%)<=(1) then goto (NotListC)
  9015. addvar(%aresp%+-1=e)
  9016. addvar(%aresp%+1=f)
  9017. get(&b,1,%var%e)
  9018. setnv(wipc=%aresp%)
  9019. get(&b,%var%f,1000)
  9020. setequal(b=%aresp%)
  9021. if (%var%b)=(-1) then goto (more)
  9022. setequal(/resp=%var%b)
  9023. inpclose
  9024. inpline(%pbtemp%wiplist.%node%,%var%b)
  9025. setequal(d=%aresp%)
  9026. writeln(b: "%var%b" aresp from inpline: "%aresp%")
  9027. inpopen(%pbtemp%wipfile.%node%,4)
  9028. inpread(%nv%d%)
  9029. if (%var%d)=() then goto (getresp0)
  9030. get(&d,1,1)
  9031. if (%aresp%)=( ) then goto (getresp0)
  9032. find(&d, )
  9033. writeln(aresp from find: "%aresp%")
  9034. if (%aresp%)=(0) then goto (getresp0)
  9035. get(&d,1,%aresp%)
  9036. setequal(d=%aresp%)
  9037. rtrim(d)
  9038. if (%nv%curfmode%)=(1) then goto (tagit)
  9039. if (%nv%curfmode%)=(2) then goto (downloadit)
  9040. if (%nv%curfmode%)=(3) then goto (viewit)
  9041. goto (getresp0)
  9042. *NotListC
  9043. find(&b,;)
  9044. if (%aresp%)<=(1) then goto (NoCmnd)
  9045. addvar(%aresp%+-1=e)
  9046. addvar(%aresp%+1=f)
  9047. get(&b,1,%var%e)
  9048. SetNv(WipC=%aresp%)
  9049. setnv(cText=)
  9050. len(%var%b)
  9051. if (%var%f)<=(%aresp%) then
  9052. get(&b,%var%f,1000)
  9053. SetNv(Ctext=%aresp%)
  9054. endif
  9055. ;if (%nv%wipc%)=(searchtext) then setNv(key=%nv%Ctext%)
  9056. *NoCmnd
  9057. setnv(wtxt=)
  9058. goto (getResp0)
  9059.  
  9060.  
  9061. *listfa
  9062. seek(%pbtemp%wiplist.%node%)
  9063. ifnottrue(goto(donef))
  9064.  
  9065. inpopen(%pbtemp%wiplist.%node%,4)
  9066.  
  9067. setnv(d=0)
  9068. setnv(m=0)
  9069. setnv(e=0)
  9070. setnv(f=0)
  9071.  
  9072. *more
  9073. setequal(u=0)
  9074. setequal(d=%nv%d%)
  9075. setequal(m=%nv%m%)
  9076. setequal(e=%nv%e%)
  9077. setequal(f=%nv%f%)
  9078. fendif(donef)
  9079.  
  9080. *stLoop
  9081.   inc(u)
  9082.   inc(d)
  9083.   inpread
  9084.   writeln(%aresp%)
  9085.   setequal(c=07~listbox~%aresp%~)
  9086.   jump (wipc)
  9087.   if (%var%u)>(%nv%high%) then goto (donef)
  9088. fendif(done)
  9089. goto(stloop)
  9090.  
  9091. *done
  9092. inpclose
  9093.  
  9094. cnvtk(%var%e)
  9095. setequal(c=07~listbox~ -- End of File Listing --~)
  9096. jump (wipc)
  9097. goto (donef)
  9098.  
  9099. *none
  9100. setequal(c=07~listbox~There are no files in this area.~)
  9101. jump (wipc)
  9102. goto (donef)
  9103.  
  9104.  
  9105.  
  9106. *NoMore
  9107.  if (%nv%high%)=() then goto (ga0)
  9108. ; writeln(No more matches to the text you specified could be found.)
  9109. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  9110. ; jump (okbox0)
  9111.  goto (donef)
  9112. ; goto (getresp0)
  9113.  
  9114. *GCHAR
  9115. COMPRINT(%NV%TEXT%)
  9116. SETEQUAL(A=0)
  9117. DO
  9118. COMKEY
  9119. ASCII
  9120. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  9121. INC(A)
  9122. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  9123. IF(%ARESP%)=(&B) THEN RET
  9124. IF(&A)>(50) THEN RET
  9125. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  9126. DELAY18TH(2)
  9127. LOOP
  9128. *WIPC
  9129. LOCALKEY(1)
  9130. IFNOTTRUE(GOTO(NOLKEY))
  9131. SYSKEYCHECK
  9132. SETEQUAL(/RESP=)
  9133. SETEQUAL(/RESP=)
  9134. *NOLKEY
  9135. CCARRIER
  9136. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  9137. CHECKSUM(%VAR%C)
  9138. SETEQUAL(B=6)
  9139. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  9140. SETNV(PBACK=)
  9141. JUMP(GCHAR)
  9142. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  9143. setequal(c=%aresp%)
  9144. SETEQUAL(/IBUFF=%NV%PBACK%)
  9145. LEN(%NV%PBACK%)
  9146. SETEQUAL(/IBUFF0=%ARESP%)
  9147. SETEQUAL(/ARESP=%VAR%C)
  9148. RET
  9149. *NOC0
  9150. log(<<,Carrier lost.)
  9151. quitbbs
  9152.  
  9153. *getinput
  9154. writeln(Waiting for input from remote user.)
  9155. setequal(y=180)
  9156. writeln(loading wipask.ctl)
  9157. loadsub(control\wipask.ctl)
  9158. writeln(back from wipask.ctl (1))
  9159. if (%aresp%)<>(24) then goto (bgi)
  9160. writeln(loading time warning.)
  9161. loadsub(control\wipask.ctl,goto(twarn))
  9162. setequal(y=60)
  9163. writeln(loading wipask.ctl (2))
  9164. loadsub(control\wipask.ctl)
  9165. writeln(back from wipask.ctl (2))
  9166. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  9167. writeln(going back to bgi)
  9168. goto (bgi)
  9169.  
  9170. *donef
  9171. ;inc(d)
  9172. setnv(d=%var%d)
  9173. setnv(m=%var%m)
  9174. setnv(e=%var%e)
  9175. setnv(f=%var%f)
  9176. write(Updating list box on user's screen ... )
  9177. setequal(c=07~listbox~-1~)
  9178. jump (wipc)
  9179. setequal(c=0F~listbox~Change File Area~1~1~2~)
  9180. jump (wipc)
  9181. setequal(c=0F~RecCount~20~1~0~1~)
  9182. jump (wipc)
  9183. setequal(c=0F~Exit~Exit~1~1~3~)
  9184. jump (wipc)
  9185. setequal(c=0F~Scrl_UP~~1~1~4~)
  9186. jump (wipc)
  9187. setequal(c=0F~Scrl_Dn~~1~1~5~)
  9188. jump (wipc)
  9189. setequal(c=0F~Page_Up~~1~1~6~)
  9190. jump (wipc)
  9191. setequal(c=0F~Page_Dn~~1~1~7~)
  9192. jump (wipc)
  9193. setequal(c=0A~)
  9194. jump (wipc)
  9195. writeln(Done!)
  9196. goto(getresp0)
  9197.  
  9198. *okbox0
  9199. Jump (wipc)
  9200. comlineinput(180,l)
  9201. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  9202. if (%resp%)=() then goto (okbox)
  9203. ret
  9204.  
  9205. *notext
  9206. writeln(No text was specified.  Enter some text to search for and try again...)
  9207. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  9208. jump (okbox0)
  9209. goto (getresp0)
  9210.  
  9211. *doAdd
  9212. loadsub(control\macros\tag-wip.ctl)
  9213. goto(thetop)
  9214.  
  9215. *okbox0
  9216. Jump (wipc)
  9217. *tryr0
  9218. comlineinput(180,l)
  9219. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  9220. if (%resp%)=() then goto (tryr0)
  9221. ret
  9222.  
  9223. *ret4
  9224. setnv(d=)
  9225. inpclose
  9226. return
  9227.  
  9228. *dispscr
  9229. setnv(high=21)
  9230. setnv(NoInfo=1)
  9231. loadsub(control\ewipscr.ctl,setnv(wipf=flist))
  9232. ret
  9233.  
  9234. *dispCurMode
  9235. if (%nv%curfMode%)<>(1) then goto (not1)
  9236. setequal(c=07~status~Now in TAG MODE.  To tag a file, click on the filename you want in the box below:~)
  9237. jump(wipc)
  9238. *not1
  9239. if (%nv%curfmode%)<>(2) then goto (not2)
  9240. setequal(c=07~status~Now in DOWNLOAD MODE.  To download a file, click on the filename you want in the box below:~)
  9241. jump (wipc)
  9242. *not2
  9243. if (%nv%curfmode%)<>(3) then ret
  9244. setequal(c=07~status~Now in VIEW MODE.  To view a file, click on the filename you want to view in the box below:~)
  9245. goto (wipc)
  9246.  
  9247. *tagmode
  9248. setnv(curfmode=1)
  9249. jump (dispcurmode)
  9250. goto (getresp0)
  9251.  
  9252. *downmode
  9253. setnv(curfmode=2)
  9254. jump (dispcurmode)
  9255. goto (getresp0)
  9256.  
  9257. *viewmode
  9258. setnv(curfmode=3)
  9259. jump (dispcurmode)
  9260. goto (getresp0)
  9261.  
  9262. *downloadit
  9263. setnv(filename=%var%d)
  9264. setnv(ctext=%var%d)
  9265. setnv(fromsub=1)
  9266. inpclose
  9267. setnv(flwd=%nv%d%)
  9268. loadsub(control\exitwip.ctl)
  9269. loadsub(control\macros\down.ctl)
  9270. setnv(d=%nv%flwd%)
  9271. setnv(flwd=)
  9272. inpopen(%pbtemp%wiplist.%node%,4)
  9273. inpread(%nv%d%)
  9274. goto (thetop)
  9275. ;goto (InitBox)
  9276.  
  9277. *tagit
  9278. setnv(filename=%var%d)
  9279. setnv(ctext=%var%d)
  9280. setnv(fromsub=1)
  9281. inpclose
  9282. setnv(flwd=%nv%d%)
  9283. loadsub(control\macros\tag-wip.ctl,goto(dotag))
  9284. setnv(d=%nv%flwd%)
  9285. setnv(flwd=)
  9286. inpopen(%pbtemp%wiplist.%node%,4)
  9287. inpread(%nv%d%)
  9288. goto (getresp0)
  9289. ;goto (InitBox)
  9290.  
  9291. *viewit
  9292. setnv(key=%var%d)
  9293. setnv(ctext=%var%d)
  9294. setnv(fromsub=1)
  9295. inpclose
  9296. setnv(flwd=%nv%d%)
  9297. upcase(d)
  9298. find(&d,.TXT)
  9299. if (%aresp%)>(0) then goto (txt)
  9300. find(&d,.ASC)
  9301. if (%aresp%)>(0) then goto (txt)
  9302. loadsub(control\exitwip.ctl)
  9303. setnv(filename=%nv%key%)
  9304. loadsub(control\macros\zview.ctl)
  9305. *bk
  9306. setnv(d=%nv%flwd%)
  9307. setnv(flwd=)
  9308. inpopen(%pbtemp%wiplist.%node%,4)
  9309. inpread(%nv%d%)
  9310. goto (thetop)
  9311. ;goto (InitBox)
  9312.  
  9313. *txt
  9314. loadsub(control\macros\freadwip.ctl)
  9315. goto (bk)
  9316. PAGECTLjif (%nv%wipmode%)=(1) then loadmem(control\macros\wippage.ctl)
  9317. say(&14&&CR&Paging %SYSOP% for a chat, one moment please...*)
  9318. checkhours
  9319. if (%ARESP%)=(No) then goto (badhours)
  9320. if (%CHAT%)=(No) then goto (notHere)
  9321. seek(%pbtemp%psys.%node%)
  9322. iftrue(goto (psys))
  9323. *beginPage
  9324. appendto(%pbtemp%psys.%node%,)
  9325. setequal(n=OK)
  9326. savescreen(%pbtemp%scr1.%NODE%)
  9327. inpopen (pagebell.dat)
  9328. localwrite(1,1,7,1,┌──────────────────────────────────────────────────────────────────────────────┐)
  9329. localwrite(1,2,7,1,│                                                                              │)
  9330. localwrite(1,3,7,1,└──────────────────────────────────────────────────────────────────────────────┘)
  9331. localwrite(2,2,14,1,        Paging SysOp ... Press (SPACE) to accept; (ESC) to toggle page        )
  9332. if (%ARESP%)=(ERROR) then goto (nothere)
  9333. setequal(h=0)
  9334.  
  9335. do
  9336. if (&n)=(PROB) then goto (absound)
  9337. inpread
  9338. sound (%ARESP%)
  9339.  
  9340.         *absound
  9341. localkey(1)
  9342. if (%ARESP%)=( ) then goto (spacehit)
  9343. if (%aresp%)=() then goto (tpg)
  9344. eofloop
  9345.  
  9346.         *nothere
  9347. restscreen(%pbtemp%scr1.%NODE%)
  9348. inpclose
  9349. requested (Chat Requested)
  9350. display (display\page)
  9351. log(--,Chat with Sysop Requested)
  9352. loadsub(control\macros\comment.ctl)
  9353. return
  9354.  
  9355.         *spacehit
  9356. restscreen(%pbtemp%scr1.%NODE%)
  9357. linefeed(1)
  9358. kill(%pbtemp%psys.%node%)
  9359. inpclose
  9360. ;norest ;dont restore the screen when chat ends!
  9361. ;sysopchat
  9362. loadsub(control\macros\ssc.ctl,goto(noRest))
  9363. return
  9364.  
  9365.         *badhours
  9366. requested (Chat Requested)
  9367. display (display\hours)
  9368. log(--,Chat with Sysop Requested)
  9369. loadsub(control\macros\comment.ctl)
  9370. return
  9371.  
  9372. *tpg
  9373. tpage ;toggle page
  9374. goto (nothere)
  9375.  
  9376. *psys
  9377. lines(%pbtemp%psys.%node%)
  9378. notif (%aresp%)=(3) then goto (beginpage)
  9379. goto (nothere)
  9380. mment.ctl)
  9381. return
  9382.  
  9383. *tpg
  9384. tpage ;toggle page
  9385. goto (nothere)
  9386.  
  9387. *psys
  9388. lines(%pbtemp%psys.%node%)
  9389. notif (%aresp%)=(3) then goto (beginpage)
  9390. goto (nothere)
  9391. ZVIEWCTL setnv(wipe=)
  9392. loadsub(control\exitwip.ctl)
  9393. DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  9394. DefPif(s:stop,n:nonstop)
  9395.  
  9396. ; a value of () for queue %VAR%Q means it is empty
  9397. ;NotIf(%VAR%Q)=() then Goto (dequeue)
  9398. *Disp2
  9399.       
  9400.         *sv
  9401. Say(&CR&&15&Enter name of the file to view (ENTER=Quit)&12&: &12&(            )&14&*)
  9402. Back(13)
  9403. if (%nv%filename%)<>() then
  9404.   setwrap(%nv%filename%)
  9405.   setnv(filename=)
  9406.   endif
  9407. MenuAsk(%NOCR%%CRON%%LEN%12%*)
  9408. *Process
  9409. if (%RESP%)=(<CR>) then goto (ret)
  9410. Get(%RESP%,1,1)
  9411. If(%ARESP%)=(?) then Goto(OlHelp)
  9412. AddDef(.%DEFEXT%)
  9413. SeekFall(%RESP%)
  9414. If (%ARESP%)=(INVALID) Then goto (invfn)
  9415. if (%ARESP%)=(No) then goto (nothere)
  9416. If (%ARESP%)=(NOT ENOUGH) Then goto (notenuf)
  9417. SelFarea(%ARESP%)
  9418. Kill(%pbtemp%ZipInfo.txt)
  9419. Say(&CR&&CR&&15&Reading the archive file...*)
  9420. setequal(e=%RESP%)
  9421. seek(zipview.bat)
  9422. ifnottrue(goto (intview))
  9423. Exec(ZipView.bat %FILPATH%%var%e)
  9424. say(Done!)
  9425. *stview
  9426. Seek(%pbtemp%zipinfo.txt)
  9427. IfNotTrue (goto (cont))
  9428. inpopen(%pbtemp%zipinfo.txt)
  9429. do
  9430. inpread
  9431. get (%ARESP%,1,7)
  9432. notif (%ARESP%)=() then if (%ARESP%)=( Length) then loadmem (control\zipview.ctl)
  9433. eofloop
  9434.  
  9435. *odisp
  9436. inpclose
  9437. view (%pbtemp%zipinfo.txt)
  9438. goto (cont)
  9439.  
  9440.         *cont
  9441. linefeed(1)
  9442. Enter
  9443. SelFarea(/:LASTDOWN/)
  9444. goto (ret0)
  9445.  
  9446.   *badsel
  9447. LoadSub(control\macros\badsel.ctl)
  9448. goto (ret0)
  9449.  
  9450.   *invfn
  9451. Display(Display\INVALID)
  9452. FlushOut
  9453. SelFarea(/:LASTDOWN/)
  9454. Enter
  9455. goto (ret00
  9456.  
  9457.   *nothere
  9458. Display(display\notfnd)
  9459. SelFarea(/:LASTDOWN/)
  9460. goto (ret0)
  9461.  
  9462.   *Notenuf
  9463. Say(&CR&)
  9464. Display (display\fbadsel)
  9465. SelFarea(/:LASTDOWN/)
  9466. goto (ret0)
  9467.         *invfn
  9468. Display(Display\INVALID)
  9469. flushout
  9470. selfarea(/:LASTDOWN/)
  9471. Enter
  9472. goto (fname)
  9473.         *notenuf
  9474. Display (Display\fbadsec)
  9475. selfarea(/:LASTDOWN/)
  9476. goto (ret0)
  9477.         *NotHere
  9478. Display(Display\notfnd)
  9479. goto (fname)
  9480.  
  9481. *ret
  9482. linefeed(1)
  9483. goto (ret0)
  9484. *intview
  9485. len(%var%e)
  9486. upcase(e)
  9487. addvar(%aresp%+-2=f)
  9488. get(&e,%var%f,3)
  9489. if (%aresp%)=(ZIP) then goto (ZIP)
  9490. ;;*** SHOULD BE LOADEXEC BELOW NOT EXEC ***
  9491. exec(av %FILPATH%%var%e >%pbtemp%zipinfo.txt,)
  9492. say(Done!)
  9493. seek(%pbtemp%zipinfo.txt)
  9494. ifnottrue(goto(cantview))
  9495. size(%pbtemp%zipinfo.txt)
  9496. if(%ARESP%)=(0) then Goto(TextFile)
  9497. view(%pbtemp%zipinfo.txt)
  9498. goto (cont)
  9499.  
  9500. *zip
  9501. exec(pkzip -v %FILPATH%%var%e >%pbtemp%zipinfo.txt,)
  9502. say(Done!)
  9503. goto (stview)
  9504.  
  9505. *cantview
  9506. say(&CR&&12&The selected file cannot be viewed.  It is apparently not an archive file nor)
  9507. say(a text file.&15&&CR&)
  9508. enter
  9509. selfarea(/:lastdown/)
  9510. return
  9511.  
  9512. *TextFile
  9513. Say(&CR&&12&The selected file is a text file. Loading text viewer...&7&)
  9514. setequal(/resp=%var%e)
  9515. LoadMem(control\macros\fread.ctl,goto(Here))
  9516.  
  9517. *dequeue
  9518. LoadSub(CONTROL\MACROS\dequeue.CTL)
  9519. If(%VAR%L)=(0) then Goto(Disp2)
  9520. Goto(Process)
  9521.  
  9522. *enqueue
  9523. SetEqual(/RESP=%VAR%E)
  9524. LoadSub(CONTROL\MACROS\enqueue.CTL)
  9525. Goto(dequeue)
  9526.  
  9527. *OlHelp
  9528. SetNv(AtPrompt=Yes)
  9529. SetNv(Helpoption=23)
  9530. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  9531. Goto(Sv)
  9532.  
  9533. *ret0
  9534. if (%nv%wipe%)=() then return
  9535. setnv(wipe=)
  9536. setnv(wipmode=1)
  9537. return
  9538. WIPPAGECTLƒsetequal(c=07~Bar~Paging the System Operator (SysOp) for a chat.  One moment, please...~)
  9539. jump (wipc)
  9540. setequal(c=0A~)
  9541. jump (wipc)
  9542.  
  9543. setnv(norefresh=1)
  9544. checkhours
  9545. if (%ARESP%)=(No) then goto (badhours)
  9546. if (%CHAT%)=(No) then goto (notHere)
  9547. seek(%pbtemp%psys.%node%)
  9548. iftrue(goto (psys))
  9549. *beginPage
  9550. appendto(%pbtemp%psys.%node%,)
  9551. setequal(n=OK)
  9552. savescreen(%pbtemp%scr1.%NODE%)
  9553. inpopen (pagebell.dat)
  9554. localwrite(1,1,7,1,┌──────────────────────────────────────────────────────────────────────────────┐)
  9555. localwrite(1,2,7,1,│                                                                              │)
  9556. localwrite(1,3,7,1,└──────────────────────────────────────────────────────────────────────────────┘)
  9557. localwrite(2,2,14,1,        Paging SysOp ... Press (SPACE) to accept; (ESC) to toggle page        )
  9558. if (%ARESP%)=(ERROR) then goto (nothere)
  9559. setequal(h=0)
  9560.  
  9561. do
  9562. if (&n)=(PROB) then goto (absound)
  9563. inpread
  9564. sound (%ARESP%)
  9565.  
  9566.         *absound
  9567. localkey(1)
  9568. if (%ARESP%)=( ) then goto (spacehit)
  9569. if (%aresp%)=() then goto (tpg)
  9570. eofloop
  9571.  
  9572. *nothere
  9573. restscreen(%Pbtemp%scr1.%NODE%)
  9574. inpclose
  9575. requested (Chat Requested)
  9576. setequal(c=07~Bar~ ~)
  9577. jump (wipc)
  9578. setequal(c=0A~)
  9579. jump (wipc)
  9580. *tryagain0
  9581.    writeln(The SysOp is not currently available for chat.  Leave a comment?)
  9582.    setequal(c=13~The SysOp is not currently available for a chat.  Would you like to leave a comment?~SysOp Not Available~2~)
  9583.    jump (wipc)
  9584.    *gi0
  9585.    comlineinput(180,l)
  9586.    if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  9587.    *tryr
  9588.    setequal(r=%resp%)
  9589.    ascii
  9590.    if (%aresp%)=(21) then goto (tryagain0)
  9591.    if (%aresp%)=(6) then
  9592.      len(%var%r)
  9593.      if (%aresp%)=(1) then goto (gi0)
  9594.      get(&r,2,1000)
  9595.      setequal(/resp=%aresp%)
  9596.      goto (tryr)
  9597.    endif
  9598.    if (%resp%)<>(2) then return
  9599.  
  9600. log(--,Chat with Sysop Requested)
  9601. loadsub(control\macros\comment.ctl,goto (stc0))
  9602. return
  9603.  
  9604.         *spacehit
  9605. restscreen(%pbtemp%scr1.%NODE%)
  9606. linefeed(1)
  9607. kill(%pbtemp%psys.%node%)
  9608. inpclose
  9609. loadsub(control\macros\ssc.ctl,goto(noRest))
  9610. return
  9611.  
  9612. *badhours
  9613. inpclose
  9614. requested (Chat Requested)
  9615. setequal(c=07~Bar~ ~)
  9616. jump (wipc)
  9617. *tryagain0
  9618.    writeln(You've paged the sysop during hours they can't be reached.  Would you like to leave a comment?)
  9619.    setequal(c=13~You've paged the sysop during hours they can't be reached.  Would you like to leave a comment?~SysOp Not Available~2~)
  9620.    jump (wipc)
  9621.    *gi0
  9622.    comlineinput(180,l)
  9623.    if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  9624.    *tryr
  9625.    setequal(r=%resp%)
  9626.    ascii
  9627.    if (%aresp%)=(21) then goto (tryagain0)
  9628.    if (%aresp%)=(6) then
  9629.      len(%var%r)
  9630.      if (%aresp%)=(1) then goto (gi0)
  9631.      get(&r,2,1000)
  9632.      setequal(/resp=%aresp%)
  9633.      goto (tryr)
  9634.    endif
  9635.    if (%resp%)<>(2) then return
  9636.  
  9637. log(--,Chat with Sysop Requested)
  9638. loadsub(control\macros\comment.ctl,goto (stc0))
  9639. return
  9640.  
  9641.  
  9642. *tpg
  9643. tpage ;toggle page
  9644. goto (nothere)
  9645.  
  9646. *psys
  9647. lines(%Pbtemp%psys.%node%)
  9648. notif (%aresp%)=(3) then goto (beginpage)
  9649. goto (nothere)
  9650.  
  9651. *GCHAR
  9652. COMPRINT(%NV%TEXT%)
  9653. SETEQUAL(A=0)
  9654. DO
  9655. COMKEY
  9656. ASCII
  9657. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  9658. INC(A)
  9659. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  9660. IF(%ARESP%)=(&B) THEN RET
  9661. IF(&A)>(200) THEN RET
  9662. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  9663. DELAY18TH(2)
  9664. LOOP
  9665. *WIPC
  9666. LOCALKEY(1)
  9667. IFNOTTRUE(GOTO(NOLKEY))
  9668. SYSKEYCHECK
  9669. SETEQUAL(/RESP=)
  9670. SETEQUAL(/RESP=)
  9671. *NOLKEY
  9672. CCARRIER
  9673. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  9674. CHECKSUM(%VAR%C)
  9675. SETEQUAL(B=6)
  9676. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  9677. SETNV(PBACK=)
  9678. JUMP(GCHAR)
  9679. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  9680. setequal(c=%aresp%)
  9681. SETEQUAL(/IBUFF=%NV%PBACK%)
  9682. LEN(%NV%PBACK%)
  9683. SETEQUAL(/IBUFF0=%ARESP%)
  9684. SETEQUAL(/ARESP=%VAR%C)
  9685. RET
  9686. *NOC0
  9687. log(<<,Carrier lost.)
  9688. quitbbs
  9689. DEQUEUECTL┘DeQueue(q)
  9690. SetEqual(/RESP=%ARESP%)
  9691. Len(%VAR%Q)
  9692. SetEqual(l=%VAR%Q)
  9693. Return
  9694.  
  9695. *Dequeue
  9696. Len(%VAR%Q)
  9697. SetEqual(l=%VAR%Q)
  9698. If(%ARESP%)=(0) then Goto(Disp2)
  9699. ; double protection against empty queue
  9700. SetEqual(l=%ARESP%)
  9701. ; %VAR%L temporarily stores number of characters in queue %VAR%Q
  9702. Find(%VAR%Q, )
  9703. If(%ARESP%)=(0) then SetEqual(/RESP=%VAR%Q)
  9704. If(%ARESP%)=(0) then Goto(Clearqueue)
  9705. AddVar(%ARESP%+-1=t)
  9706. Get(%VAR%Q,1,%VAR%T)
  9707. MenuEqual(/RESP=%ARESP%)
  9708. AddVar(%VAR%T+1=t)
  9709. AddVar(%VAR%L+-%VAR%T=l)
  9710. AddVar(%VAR%T+1=t)
  9711. If(%VAR%L)=(0) then Goto(ClearQueue)
  9712. Get(%VAR%Q,%VAR%T,%VAR%L)
  9713. SetEqual(q=%ARESP%)
  9714. ; Dequeues first command from queue %VAR%Q
  9715. ;;Goto(Process)
  9716. Return
  9717.  
  9718. *ClearQueue
  9719. SetEqual(q=)
  9720. ;Goto(Process)
  9721. Return
  9722. WIPFINDCTL∞;USERFIND by Doug Vermes with modifications by Scott Brown
  9723. *thetop
  9724.  
  9725. setnv(NoInfo=1)
  9726. loadsub(control\ewipscr.ctl,setnv(wipf=userfind))
  9727.  
  9728. *initBox
  9729. setequal(c=14~listbox~1000~11~)
  9730. jump (wipc)
  9731.  
  9732. *GetResp0
  9733. setequal(c=0A~)
  9734. jump (wipc)
  9735.  
  9736. jump (getInput)
  9737. writeln(Response from user: "%resp%")
  9738. if (%nv%wiprestreq%)=(1) then goto (thetop)
  9739. if (%resp%)=(begin) then goto (userfind)
  9740. if (%resp%)=(quit) then return
  9741. setequal(b=%resp%)
  9742. find(&b,,)
  9743. if (%aresp%)<=(1) then goto (NotListC)
  9744. addvar(%aresp%+-1=e)
  9745. addvar(%aresp%+1=f)
  9746. get(&b,1,%var%e)
  9747. setnv(wipc=%aresp%)
  9748. get(&b,%var%f,1000)
  9749. setequal(b=%aresp%)
  9750. if (%var%b)=(-1) then goto (s2)
  9751. goto (getresp0)
  9752. *NotListC
  9753. find(&b,;)
  9754. if (%aresp%)<=(1) then goto (NoCmnd)
  9755. addvar(%aresp%+-1=e)
  9756. addvar(%aresp%+1=f)
  9757. get(&b,1,%var%e)
  9758. SetNv(WipC=%aresp%)
  9759. setnv(cText=)
  9760. len(%var%b)
  9761. if (%var%f)<=(%aresp%) then
  9762. get(&b,%var%f,1000)
  9763. SetNv(Ctext=%aresp%)
  9764. endif
  9765. if (%nv%wipc%)=(searchtext) then setNv(key=%nv%Ctext%)
  9766. *NoCmnd
  9767. setnv(wtxt=)
  9768. goto (getResp0)
  9769.  
  9770.  
  9771. *UserFind
  9772. setequal(c=14~listbox~1000~11~)
  9773. jump (wipc)
  9774. SetActivity (User Find)
  9775.  
  9776. *Main
  9777.  *Stk
  9778.  ;%NV%KEY% is Search Key
  9779.  if (%nv%key%)=() then goto (notext)
  9780.  log (--,UserFind for:%nv%key%)
  9781.  writeln(Searching for: "%nv%key%")
  9782.  SetEqual(n=1) 
  9783.  ;user number to search from
  9784.  *s2
  9785.  SetEqual(y=0)
  9786.  
  9787. *Searching
  9788.  SeekUserP(%NV%KEY%,%VAR%N)
  9789.  ifnottrue(goto (nomore))
  9790.  AddVar(%NDXREC%+1=n)
  9791.  Inc(y)
  9792.  Loaduser (%NDNUMB%)
  9793.  SetEqual(a=\:NAME\)
  9794.  SetLen(a=23)
  9795.  setequal(z=%var%a)
  9796.  SetEqual(a=\:FROM\)
  9797.  SetLen(a=26)
  9798.  setequal(z=%var%z%var%a)
  9799.  setequal(z=%var%z\:LAST\)
  9800.  writeln(%var%z)
  9801.  setequal(c=07~listbox~%var%z~)
  9802.  jump (wipc)
  9803.  
  9804.  if (%var%y)=>(11) then goto (donef)
  9805.  
  9806.  Goto(Searching)
  9807.  
  9808. *NoMore
  9809.  writeln(No more matches to the text you specified could be found.)
  9810.  setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  9811.  jump (okbox0)
  9812.  goto (donef)
  9813.  
  9814. *GCHAR
  9815. COMPRINT(%NV%TEXT%)
  9816. SETEQUAL(A=0)
  9817. DO
  9818. COMKEY
  9819. ASCII
  9820. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  9821. INC(A)
  9822. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  9823. IF(%ARESP%)=(&B) THEN RET
  9824. IF(&A)>(200) THEN RET
  9825. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  9826. DELAY18TH(2)
  9827. LOOP
  9828. *WIPC
  9829. LOCALKEY(1)
  9830. IFNOTTRUE(GOTO(NOLKEY))
  9831. SYSKEYCHECK
  9832. SETEQUAL(/RESP=)
  9833. SETEQUAL(/RESP=)
  9834. *NOLKEY
  9835. CCARRIER
  9836. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  9837. CHECKSUM(%VAR%C)
  9838. SETEQUAL(B=6)
  9839. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  9840. SETNV(PBACK=)
  9841. JUMP(GCHAR)
  9842. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  9843. setequal(c=%aresp%)
  9844. SETEQUAL(/IBUFF=%NV%PBACK%)
  9845. LEN(%NV%PBACK%)
  9846. SETEQUAL(/IBUFF0=%ARESP%)
  9847. SETEQUAL(/ARESP=%VAR%C)
  9848. RET
  9849. *NOC0
  9850. log(<<,Carrier lost.)
  9851. quitbbs
  9852.  
  9853. *wipask
  9854. loadsub(control\wipask.ctl)
  9855. ret
  9856.  
  9857. *getinput
  9858. writeln(Waiting for input from remote user.)
  9859. setequal(y=180)
  9860. jump (wipask)
  9861. if (%aresp%)<>(24) then ret
  9862. loadsub(control\wipask.ctl,goto(twarn))
  9863. setequal(y=60)
  9864. jump (wipask)
  9865. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  9866. ret
  9867.  
  9868. *donef
  9869. write(Updating list box on user's screen ... )
  9870. setequal(c=07~listbox~-1~)
  9871. jump (wipc)
  9872. setequal(c=0F~listbox~Find A User~1~1~2~)
  9873. jump (wipc)
  9874. setequal(c=0F~RecCount~11~1~0~1~)
  9875. jump (wipc)
  9876. setequal(c=0F~Exit~Exit~1~1~3~)
  9877. jump (wipc)
  9878. setequal(c=0F~Scrl_UP~~1~1~4~)
  9879. jump (wipc)
  9880. setequal(c=0F~Scrl_Dn~~1~1~5~)
  9881. jump (wipc)
  9882. setequal(c=0F~Page_Up~~1~1~6~)
  9883. jump (wipc)
  9884. setequal(c=0F~Page_Dn~~1~1~7~)
  9885. jump (wipc)
  9886. setequal(c=0A~)
  9887. jump (wipc)
  9888. writeln(Done!)
  9889. goto(getresp0)
  9890.  
  9891. *okbox0
  9892. Jump (wipc)
  9893. comlineinput(180,l)
  9894. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  9895. if (%resp%)=() then goto (okbox)
  9896. ret
  9897.  
  9898. *notext
  9899. writeln(No text was specified.  Enter some text to search for and try again...)
  9900. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  9901. jump (okbox0)
  9902. goto (getresp0)
  9903. CHGCTLaif (%nv%wipmode%)=(1) then loadmem(control\macros\wipchg.ctl)
  9904. *tt
  9905. DeLimit( ,;)
  9906. ;---PowerStak Block 1
  9907. len(%nv%queue%)
  9908. notif (%aresp%) = (0) then 
  9909.         setequal(/resp=%nv%queue%)       
  9910.         goto(stk) ;If something in the stack then...
  9911. endif
  9912. ;---PowerStak Block 1 End---
  9913. Display(display\CHG,/:SEC/)
  9914. *ThePrompt
  9915. CAsk(%CRON%&CR&&15&Which conference would you like? (&14&ENTER&15&=Quit)&12&: &14&*)
  9916. ;---PowerStak Block 2
  9917.  
  9918. *stk
  9919. setequal(a=%resp%)
  9920. DEQUEUE(a)
  9921. setequal(/nvqueue=%var%a)
  9922. setequal(/resp=%aresp%)
  9923. ;---PowerStak Block 2 End---
  9924. if (%Resp%)=(<CR>) then return
  9925. *sela
  9926. Get(%RESP%,1,1)
  9927. If(%ARESP%)=(?) then Goto(OlHelp)
  9928. If(%ARESP%)=(/) then Goto(Anywhere)
  9929. MenuEqual(/RESP=%RESP%)
  9930. Number(%RESP%)
  9931. If (%ARESP%)=(No) Then Return
  9932. setequal(b=%resp%)
  9933. CmpValO(%MAXAREA%,%var%b)
  9934. IfTrue (Return)
  9935. SelArea(%var%b)
  9936. EnufSec(%AREASEC%)
  9937. IfTrue(Goto (cnt))
  9938. SelArea(/:LASTMSG/)
  9939. enufsec(%areasec%)
  9940. ifnottrue(setequal(/lastmsg=1))
  9941. ifnottrue(selarea(1))
  9942. Say(&CR&&14&You don't have a high enough security level for that area.&CR&)
  9943. enter
  9944. Return
  9945. *cnt
  9946. Display(areas\welc%var%b)
  9947. ListFile(areas\farea%var%b)
  9948. ;upload areas are AREAS\FAU%VAR%B
  9949. if (%FAREA%)=(AREAS\FAREA%var%b) then goto (fsetup)
  9950. goto (seled)
  9951.  
  9952. *fsetup
  9953. selfarea(1)
  9954. setequal(/lastdown=1)
  9955. *seled
  9956. Say(Area #%var%b (&15&%AREANAME%&11&) is now selected!&CR&&7&)
  9957. if (%AREAPVT%)=(Y) then say(Private mail is allowed in this area.)
  9958. if (%AREAPVT%)=(N) then say(No private mail is allowed in this area.)
  9959. if (%AREAFPUB%)=(Y) then say(All messages are forced public.)
  9960. if (%AREAFPVT%)=(Y) then say(All messages are forced private.)
  9961. if (%MSGNET%)=(Y) then say(Netmail is supported in this area.)
  9962. if (%MSGFNET%)=(Y) then say(All mail in this area is Netmail.)
  9963. linefeed(1)
  9964. log(--,Joined Conference #%var%b)
  9965. enter
  9966. SetEqual(/LASTMSG=%var%b)
  9967. seek(areas\news/:lastmsg/.asc)
  9968. iftrue(loadsub(control\macros\cnfnews.ctl))
  9969. Return
  9970.  
  9971. *OlHelp
  9972. SetNv(AtPrompt=Yes)
  9973. SetNv(Helpoption=7)
  9974. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  9975. Goto(ThePrompt)
  9976.  
  9977. *Anywhere
  9978. Len(%RESP%)
  9979. If(%ARESP%)<(2) then Goto(Bsel)
  9980. LoadSub(control\macros\anywhere.ctl)
  9981. Goto(ThePrompt)
  9982. ENQUEUECTL»*Enqueue
  9983. NotIf(%VAR%Q)=() then Goto(Concat)
  9984. MenuEqual(q=%RESP%)
  9985. ;Enqueue all commands onto queue
  9986. Return
  9987.  
  9988. *Concat
  9989. Combine( +%RESP%=s)
  9990. Combine(%VAR%Q+%VAR%S=q)
  9991. Return
  9992. MOVECTL√setnv(wipe=)
  9993. loadsub(control\exitwip.ctl)
  9994. SetNv(Beginmsg=/:LASTMSG/)
  9995. SetNV(Begindn=/:LASTDOWN/)
  9996.  
  9997. if (%graphics%)=(RIP) then clearscr
  9998. *FName
  9999. Say(&CR&&15&Move a file from an (&12&U&15&)pload or (&12&D&15&)ownload Area? &14&*)
  10000. MenuKey(%CRON%*)
  10001. If(%RESP%)=(<CR>) then
  10002.   Say()
  10003.   goto (ret0)
  10004.  Endif
  10005. BigNiceSay(U:U,D:D)
  10006. BigIf(U:UpArea,D:GetFName)
  10007. Goto(Fname)
  10008. *GetFName
  10009. say(&CR&&15&Enter name of the file to move (ENTER=Quit)&12&: &12&(            )&14&*)
  10010. back(13)
  10011. menuask(%CRON%%LEN%12%*)
  10012. If (%RESP%)=(<CR>) Then goto (ret0)
  10013. Get(%RESP%,1,1)
  10014. If(%ARESP%)=(?) then
  10015.   SetNv(helpoption=32)
  10016.   Jump(olhelp)
  10017.   goto(GetFname)
  10018.  endif
  10019. adddef(.%DEFEXT%)
  10020. say(&CR&&11&Please wait!... We're searching for the file...*)
  10021. seekfall(%RESP%)
  10022. if (%ARESP%)=(INVALID) then goto (invfn)
  10023. if (%ARESP%)=(No) then goto (nothere)
  10024. if (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  10025. if (%RESP%)=(%ARESP%) then goto (moveerr)
  10026. selFarea(%ARESP%)
  10027. setequal(l=%RESP%)
  10028. inpopen(%FAREA%.bbs)
  10029. if (%ARESP%)=(ERROR) then goto (moveerr)
  10030. setequal(u=1)
  10031. say(Found!&7&)
  10032. setequal(j=%FILPATH%)
  10033. inpclose
  10034. ;inpread
  10035. Say(&CR&&15&Would you like to move this file to a different conference? (&12&Y&15&/&12&N&15&)&14&*)
  10036. Back(4)
  10037. YesNoAsk(*)
  10038. If(%RESP%)=(Yes) then Jump(ChgConference)
  10039. *Ques1
  10040. Say(&CR&&15&Move this file to an (&12&U&15&)pload or (&12&D&15&)ownload Area? &14&*)
  10041. MenuKey(%CRON%*)
  10042. BigNiceSay(U:U,D:D)
  10043. BigIf(U:UpArea2,D:DownArea2)
  10044. If(%RESP%)=(<CR>) then goto (ret0)
  10045. Goto(Ques1)
  10046.  
  10047. say(&CR&&3&Would you like to list the file areas? &9&[   ]&14&*)
  10048. back(4)
  10049. YesNoAsk(*)
  10050. if (%resp%)=(No) then goto (stopinp)
  10051. do
  10052. say(%var%u - %ARESP%)
  10053. inpread(2)
  10054. inc(u)
  10055. eofloop
  10056.  
  10057.         *stopinp
  10058. ;inpclose
  10059. menuask(%CRON%&CR&&3&Enter the number of the directory you want to move this to&12&: &15&*)
  10060. if (%resp%)=(<CR>) then goto (moveerr)
  10061. say(&CR&&14&Please wait, moving file...*)
  10062. selfarea(%RESP%)
  10063. if (%FILPATH%)=(&j) then goto (moveerr)
  10064. move2(%var%l,%var%j,%FILPATH%,%FILAREA%,%FAREA%)
  10065. resetlist
  10066. listfile(%FAREA%)
  10067.  
  10068.         *endmove
  10069. ListFile(AREAS\FAREA%NV%BEGINMSG%)
  10070. SetEqual(/lastmsg=%NV%BEGINMSG%)
  10071. selfarea(%NV%BEGINDN%)
  10072. SetEqual(/lastdown=%NV%BEGINDN%)
  10073. SetNv(beginmsg=)
  10074. SetNv(begindn=)
  10075. goto (ret0)
  10076.         *invfn
  10077. Display(Display\INVALID)
  10078. flushout
  10079. selfarea(/:LASTDOWN/)
  10080. Enter
  10081. goto (fname)
  10082.         *notenuf
  10083. Display (Display\fbadsec)
  10084. selfarea(/:LASTDOWN/)
  10085. goto (ret0)
  10086.         *NotHere
  10087. Display(Display\notfnd)
  10088. goto (fname)
  10089.         *moveerr
  10090. say(&CR&&14&The directory you specify is where the file already resides!&CR&)
  10091. selfarea(/:lastdown/)
  10092. SecPause(1)
  10093. Goto(EndMove)
  10094. goto (ret0)
  10095.  
  10096. *UpArea
  10097. ListFile(areas\fau/:LASTMSG/)
  10098. If(%FAREA%)<>(AREAS\FAU/:LASTMSG/) then Goto(NoUpAreas)
  10099. display(%FAREA%)
  10100. Say(&CR&&12&Please note that other conferences may have different upload areas.)
  10101. Say(&CR&&15&Which upload area would you like to list?&12&: &14&*)
  10102. MenuAsk(%CRON%*)
  10103. If(%RESP%)=(<CR>) then goto (ret0)
  10104. Number(%RESP%)
  10105. IfNotTrue(Goto(InvUp))
  10106. SelFArea(%RESP%)
  10107. SetEqual(/LASTUP=%RESP%)
  10108. LoadSub(control\macros\flistu.ctl)
  10109. Enter
  10110. Goto(GetFname)
  10111.  
  10112. *InvUp
  10113. Say(&CR&&12&Invalid upload area number! Please try again...)
  10114. SecPause(1)
  10115. Goto(UpArea)
  10116.  
  10117. *NoUpAreas
  10118. Say(&CR&&12&There are no upload areas in this conference!)
  10119. SecPause(1)
  10120. Goto(Fname)
  10121.  
  10122. *DownArea
  10123. ListFile(areas\farea/:LASTMSG/)
  10124. If(%FAREA%)<>(AREAS\FAREA/:LASTMSG/) then Goto(NoDownAreas)
  10125. display(%FAREA%)
  10126. Say(&CR&&12&Please note that other conferences may have different file areas.)
  10127. Goto(GetFname)
  10128.  
  10129. *NoDownAreas
  10130. Say(&CR&&12&There are no download areas in this conference!)
  10131. SecPause(1)
  10132. Goto(Fname)
  10133.  
  10134. *InvDn
  10135. Say(&CR&&12&Invalid upload area number! Please try again...)
  10136. SecPause(1)
  10137. Goto(DownArea)
  10138.  
  10139. *UpArea2
  10140. ListFile(areas\fau/:LASTMSG/)
  10141. If(%FAREA%)<>(AREAS\FAU/:LASTMSG/) then Goto(NoUpAreas2)
  10142. display(%FAREA%)
  10143. Say(&CR&&12&Please note that other conferences may have different upload areas.)
  10144. Goto(StopInp)
  10145.  
  10146. *NoUpAreas2
  10147. Say(&CR&&12&There are no upload areas in the destination conference!)
  10148. SecPause(1)
  10149. Goto(Ques1)
  10150.  
  10151. *DownArea2
  10152. ListFile(areas\farea/:LASTMSG/)
  10153. If(%FAREA%)<>(AREAS\FAREA/:LASTMSG/) then Goto(NoDownAreas2)
  10154. display(%FAREA%)
  10155. Say(&CR&&12&Please note that other conferences may have different file areas.)
  10156. Goto(Stopinp)
  10157.  
  10158. *NoDownAreas2
  10159. Say(&CR&&12&There are no download areas in the destination conference!)
  10160. SecPause(1)
  10161. Goto(Ques1)
  10162.  
  10163. *ChgConference
  10164. SetNv(moving=Yes)
  10165. LoadSub(control\macros\chg.ctl)
  10166. SetNv(moving=)
  10167. Ret
  10168.  
  10169. *OlHelp
  10170. SetNv(AtPrompt=Yes)
  10171. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  10172. Ret
  10173.  
  10174. *ret0
  10175. if (%nv%wipe%)=() then return
  10176. setnv(wipe=)
  10177. setnv(wipmode=1)
  10178. return
  10179. MCHATCTL_
  10180. setnv(wipe=)
  10181. loadsub(control\exitwip.ctl)
  10182.  delimit( ,;)
  10183.  DefPause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  10184.  DefPif (s:stop,n:nonstop)
  10185. if (%MULTI%)=(TRUE) then goto (start)
  10186. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  10187. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  10188. say(your Sysop, %SYSOP%.&CR&)
  10189. enter
  10190. goto (ret0)
  10191.  
  10192. *start
  10193. setactivity (Entering Chat)
  10194. SetWho1(&7&)
  10195. SetWho2(&11&)
  10196. SetWho3(&3&)
  10197. SetWho4(&10&)
  10198. SetWho5(&15&)
  10199. ;---PowerStak Block 1
  10200. ;len(%nv%queue%)
  10201. ;notif (%aresp%) = (0) then
  10202. ;        setequal(/resp=%nv%queue%)
  10203. ;        SetNv(stack=Yes)
  10204. ;        goto(stk) ;If something in the stack then...
  10205. ;endif
  10206. ;---PowerStak Block 1 End---
  10207. ;
  10208. ;display(display\chatconf)
  10209. ;menuask(&3&Please select a chat conference&12&: &15&*%CRON%)
  10210. ;---PowerStak Block 2
  10211.  
  10212. *stk
  10213. ;setequal(a=%resp%)
  10214. ;DEQUEUE(a)
  10215. ;setequal(/nvqueue=%var%a)
  10216. ;setequal(/resp=%aresp%)
  10217. ;Say(RESP=%RESP%)
  10218. ;---PowerStak Block 2 End---
  10219. ;if (%RESP%)=(<CR>) then goto (ret0)
  10220. ;number(%RESP%)
  10221. ;ifnottrue(goto (badsel))
  10222. ;setequal(a=%RESP%)
  10223. setequal(c=%NAME%)
  10224. setlen(c=20)
  10225. setequal(d=%FROM%)
  10226. setlen(d=21)
  10227. ;---PowerStak Block 1b
  10228. ;len(%nv%queue%)
  10229. ;notif (%aresp%) = (0) then
  10230. ;        setequal(/resp=%nv%queue%)
  10231. ;        Setnv(stack=Yes)
  10232. ;        goto(stk2) ;If something in the stack then...
  10233. ;endif
  10234. ;;---PowerStak Block 1b End---
  10235. ;display(display\chatopt)
  10236. ;loadsub(control\macros\mwho.ctl)
  10237. ;menuask(&3&Nodes you would like to chat with, separated by spaces &11&(A=All)&12&: &15&*%CRON%)
  10238. ;deleted a "%MIN%1%" from above line.. It contradicts "%CRON%".
  10239. ;---PowerStak Block 2
  10240.  
  10241. ;*stk2
  10242. ;setequal(b=%resp%)
  10243. ;DEQUEUE(b)
  10244. ;setequal(/nvqueue=%var%b)
  10245. ;setequal(/resp=%aresp%)
  10246. ;;---PowerStak Block 2 End---
  10247. ;if (%RESP%)=(<CR>) then return
  10248. ;Say(RESP=%RESP%)
  10249. ;setequal(b=%RESP% %NODE%)
  10250. display(display\stchat)
  10251. ;If(%NV%STACK%)=(Yes) then
  10252. ;  Say(&CR&&14&Entering Chat... Type /? for Help)
  10253. ;  Say(&CR&&10&It is %TIME% on %DATE% at %BBS%.  You have /:LEFT/ minutes left.*)
  10254. ; endif
  10255. SetNv(Stack=)
  10256. ;SetNv(a=%VAR%A)
  10257. SetNv(curchan=0)
  10258. LoadSub(control\macros\mcdat.ctl)
  10259. SetEqual(a=%NV%A%)
  10260. SetNv(a=)
  10261. ;SetNv(chatwhom=%VAR%B)
  10262. *DoTheChat
  10263. CarrierL(Y)
  10264. ;mChat(%nv%curchan% -1)
  10265. mChat(0 -1)
  10266. ; ARESP=24  = kb timeout
  10267. ; ARESP=10  = time ran out
  10268. If(%ARESP%)=(24) then Goto(KbTimeOut)
  10269. If(%ARESP%)=(10) then Goto(OutOfTime)
  10270. CarrierL(N)
  10271. goto (ret0)
  10272.  
  10273. *RetToChat
  10274. Say(&15&*)  ; restore color 15 chat
  10275. LoadSub(control\macros\mcdat.ctl)  ; update data file
  10276. Mchat(%NOENTERMSG%%NV%CURCHAN% -1)
  10277. goto (ret0)
  10278.  
  10279. *all
  10280. If(%NV%STACK%)<>(Yes) then display(display\stchat)
  10281. If(%NV%STACK%)=(Yes) then
  10282.   Say(&CR&&14&Entering Chat... Type /? for Help)
  10283.   Say(&CR&&10&It is %TIME% on %DATE% at %BBS%.  You have /:LEFT/ minutes left.*)
  10284.  endif
  10285. AppendTo(CHAT\MCHAT.DAT,%NAME%,%VAR%A)  ; user_name,channel_number
  10286. SetNv(chatwhom=-1)
  10287. SetNv(curchan=%VAR%A)
  10288. mchat(%var%a -1)
  10289. goto (ret0)
  10290.  
  10291. *badsel
  10292. loadsub(control\macros\badsel.ctl)
  10293. ;Clear Stack on Error!
  10294. ;---PowerStak Block 3
  10295. setequal(/nvqueue=)
  10296. ;---PowerStak Block 3 End
  10297. goto (ret0)
  10298.  
  10299. *NoCarrier
  10300. LoadMem(control\mnchat\quit.)
  10301. QuitBBS
  10302.  
  10303. *KBTimeout
  10304. Display(display\timeout)
  10305. Goto(NoCarrier)
  10306.  
  10307. *OutOfTime
  10308. Display(display\notime)
  10309. Goto(NoCarrier)
  10310.  
  10311. *ret0
  10312. if (%nv%wipe%)=() then return
  10313. setnv(wipe=)
  10314. setnv(wipmode=1)
  10315. return
  10316. CHANGE-WCTL╛*thetop
  10317.  
  10318. setnv(high=22)
  10319. setnv(NoInfo=1)
  10320. loadsub(control\ewipscr.ctl,setnv(wipf=changef))
  10321.  
  10322. *initBox
  10323. setequal(c=14~listbox~%maxfarea%~22~)
  10324. jump (wipc)
  10325.  
  10326. goto (listfa)
  10327.  
  10328. *GetResp0
  10329. setequal(c=0A~)
  10330. jump (wipc)
  10331.  
  10332. jump (getInput)
  10333. writeln(Response from user: "%resp%")
  10334. if (%nv%wiprestreq%)=(1) then goto (thetop)
  10335. if (%resp%)=(Help) then goto (olhelp)
  10336. if (%resp%)=(Exit) then goto (ret4)
  10337. if (%resp%)=(quit) then goto (ret4)
  10338. setequal(b=%resp%)
  10339. find(&b,,)
  10340. if (%aresp%)<=(1) then goto (NotListC)
  10341. addvar(%aresp%+-1=e)
  10342. addvar(%aresp%+1=f)
  10343. get(&b,1,%var%e)
  10344. setnv(wipc=%aresp%)
  10345. get(&b,%var%f,1000)
  10346. setequal(b=%aresp%)
  10347. if (%var%b)=(-1) then goto (more)
  10348. setequal(/resp=%var%b)
  10349. goto (sa)
  10350. goto (getresp0)
  10351. *NotListC
  10352. find(&b,;)
  10353. if (%aresp%)<=(1) then goto (NoCmnd)
  10354. addvar(%aresp%+-1=e)
  10355. addvar(%aresp%+1=f)
  10356. get(&b,1,%var%e)
  10357. SetNv(WipC=%aresp%)
  10358. setnv(cText=)
  10359. len(%var%b)
  10360. if (%var%f)<=(%aresp%) then
  10361. get(&b,%var%f,1000)
  10362. SetNv(Ctext=%aresp%)
  10363. endif
  10364. ;if (%nv%wipc%)=(searchtext) then setNv(key=%nv%Ctext%)
  10365. *NoCmnd
  10366. setnv(wtxt=)
  10367. goto (getResp0)
  10368.  
  10369.  
  10370. *listfa
  10371. inpclose
  10372. inpopen(%farea%.bbs,4)
  10373. setequal(d=0)
  10374. setnv(d=0)
  10375.  
  10376. *more
  10377. setequal(d=%nv%d%)
  10378. setequal(u=0)
  10379.  
  10380. *rt
  10381. inc(d)
  10382. ;fendif(nomore)
  10383. inpread
  10384. setequal(n=%aresp%)
  10385. fendif(nomore)
  10386. inpread
  10387. setequal(a=%aresp%)
  10388. find(&a,,)
  10389. if (%aresp%)=(0) then goto (rt)
  10390. addvar(%aresp%+-1=w)
  10391. get(&a,1,%var%w)
  10392. if (%aresp%)>(%sec%) then goto (rt)
  10393. setequal(e=%var%d)
  10394. setlen(e=5)
  10395. inc(u)
  10396. setequal(c=07~listbox~%var%e %var%n~)
  10397. writeln(%var%e %var%n)
  10398. if (%nv%high%)<>() then goto (nh)
  10399. if (%var%u)=(%resp%) then goto (ga0)
  10400. *nh
  10401. setnv(d=%var%d)
  10402. if (%nv%high%)<>() then jump (wipc)
  10403. setequal(d=%nv%d%)
  10404. if (%nv%high%)=() then goto (rt)
  10405. if (%var%u)>(%nv%high%) then goto (donef)
  10406. goto (rt)
  10407.  
  10408. *NoMore
  10409.  if (%nv%high%)=() then goto (ga0)
  10410. ; writeln(No more matches to the text you specified could be found.)
  10411. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  10412. ; jump (okbox0)
  10413.  goto (donef)
  10414. ; goto (getresp0)
  10415.  
  10416. *GCHAR
  10417. COMPRINT(%NV%TEXT%)
  10418. SETEQUAL(A=0)
  10419. DO
  10420. COMKEY
  10421. ASCII
  10422. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  10423. INC(A)
  10424. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  10425. IF(%ARESP%)=(&B) THEN RET
  10426. IF(&A)>(50) THEN RET
  10427. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  10428. DELAY18TH(2)
  10429. LOOP
  10430. *WIPC
  10431. LOCALKEY(1)
  10432. IFNOTTRUE(GOTO(NOLKEY))
  10433. SYSKEYCHECK
  10434. SETEQUAL(/RESP=)
  10435. SETEQUAL(/RESP=)
  10436. *NOLKEY
  10437. CCARRIER
  10438. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  10439. CHECKSUM(%VAR%C)
  10440. SETEQUAL(B=6)
  10441. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  10442. SETNV(PBACK=)
  10443. JUMP(GCHAR)
  10444. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  10445. setequal(c=%aresp%)
  10446. SETEQUAL(/IBUFF=%NV%PBACK%)
  10447. LEN(%NV%PBACK%)
  10448. SETEQUAL(/IBUFF0=%ARESP%)
  10449. SETEQUAL(/ARESP=%VAR%C)
  10450. RET
  10451. *NOC0
  10452. log(<<,Carrier lost.)
  10453. quitbbs
  10454.  
  10455. *wipask
  10456. loadsub(control\wipask.ctl)
  10457. ret
  10458.  
  10459. *getinput
  10460. writeln(Waiting for input from remote user.)
  10461. setequal(y=180)
  10462. jump (wipask)
  10463. if (%aresp%)<>(24) then ret
  10464. loadsub(control\wipask.ctl,goto(twarn))
  10465. setequal(y=60)
  10466. jump (wipask)
  10467. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  10468. ret
  10469.  
  10470. *donef
  10471. ;inc(d)
  10472. setnv(d=%var%d)
  10473. write(Updating list box on user's screen ... )
  10474. setequal(c=07~listbox~-1~)
  10475. jump (wipc)
  10476. setequal(c=0F~listbox~Change File Area~1~1~2~)
  10477. jump (wipc)
  10478. setequal(c=0F~RecCount~20~1~0~1~)
  10479. jump (wipc)
  10480. setequal(c=0F~Exit~Exit~1~1~3~)
  10481. jump (wipc)
  10482. setequal(c=0F~Scrl_UP~~1~1~4~)
  10483. jump (wipc)
  10484. setequal(c=0F~Scrl_Dn~~1~1~5~)
  10485. jump (wipc)
  10486. setequal(c=0F~Page_Up~~1~1~6~)
  10487. jump (wipc)
  10488. setequal(c=0F~Page_Dn~~1~1~7~)
  10489. jump (wipc)
  10490. setequal(c=0A~)
  10491. jump (wipc)
  10492. writeln(Done!)
  10493. goto(getresp0)
  10494.  
  10495. *okbox0
  10496. Jump (wipc)
  10497. comlineinput(180,l)
  10498. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  10499. if (%resp%)=() then goto (okbox)
  10500. ret
  10501.  
  10502. *notext
  10503. writeln(No text was specified.  Enter some text to search for and try again...)
  10504. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  10505. jump (okbox0)
  10506. goto (getresp0)
  10507.  
  10508.  
  10509.  
  10510. *sa
  10511.  inpclose
  10512.  number(%resp%)
  10513.  ifnottrue(goto (bds))
  10514.  CmpValo(%MAXFAREA%,%RESP%)
  10515.  IfTrue(goto (bds))
  10516.  addvar(%resp%+0=d)
  10517.  setequal(/resp=%var%d)
  10518.  setnv(high=)
  10519.  goto (listfa)
  10520. *ga0
  10521.  setequal(/resp=%var%d)
  10522.  inpclose
  10523.  SelFarea(%RESP%)
  10524.  CmpVal(%sec%,%FILSEC%)
  10525.  IfTrue(goto (bds))
  10526.  SetEqual(/LASTDOWN=%RESP%)
  10527. ; if (%CD%)=(Yes) then display(%CDPath%/:lastdown/\welc)
  10528. ; if (%CD%)=(No) then Display(%FILPATH%welc)
  10529.  writeln(Area #%RESP%: %FILNAME% is now selected!)
  10530.  setequal(c=13~Area #%RESP%: %FILNAME% is now selected!~Area Selected~1~)
  10531.  jump (okbox0)
  10532.  log(--,Changed to %FILNAME% file area)
  10533.   writeln(Would you like to list this file area?)
  10534.  *listf0
  10535.  setequal(c=13~Would you like to list this file area?~List Area?~2~)
  10536.  
  10537.    jump (wipc)
  10538.    *gi0
  10539.    comlineinput(180,l)
  10540.    if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  10541.    *tryr
  10542.    setequal(r=%resp%)
  10543.    ascii
  10544.    if (%aresp%)=(21) then goto (listf0)
  10545.    if (%aresp%)=(6) then
  10546.      len(%var%r)
  10547.      if (%aresp%)=(1) then goto (gi0)
  10548.      get(&r,2,1000)
  10549.      setequal(/resp=%aresp%)
  10550.      goto (tryr)
  10551.    endif
  10552.    if (%resp%)=(2) then loadmem(control\macros\flist.ctl)
  10553. goto (ret4)
  10554.  
  10555. *bds
  10556. loadmem(control\macros\badsel.ctl)
  10557. *nofs
  10558. display(display\NOFSEC)
  10559. selfarea(/:lastdown/)
  10560. goto (ret4)
  10561.  
  10562. *OlHelp
  10563. loadsub(control\exitwip.ctl)
  10564. SetNv(AtPrompt=Yes)
  10565. SetNv(Helpoption=19)
  10566. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  10567. goto (thetop)
  10568.  
  10569. *okbox0
  10570. Jump (wipc)
  10571. *tryr0
  10572. comlineinput(180,l)
  10573. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  10574. if (%resp%)=() then goto (tryr0)
  10575. ret
  10576.  
  10577. *ret4
  10578. setnv(d=)
  10579. inpclose
  10580. return
  10581. GRAPHCTLL*GetGraph
  10582. Say(&15&Use (&12&A&15&)NSI, ASCI(&12&I&15&), (&12&W&15&)IP, or (&12&R&15&)IP Graphics Mode?&12&: &14&*)
  10583. SetEqual(b=1)
  10584. *GetAnswer
  10585. MenuKey(%CRON%)
  10586. If(%RESP%)=(<CR>) then Return
  10587. BigNiceSay(A:ANSI,I:ASCII,W:WIP,R:RIP)
  10588. BigIf(A:ANSI,I:ASCII,W:WIP,R:RIP,?:OLHELP)
  10589. Inc(b)
  10590. If(&b)>(3) then Return  ; give them 3 tries and then pretend they did nothing
  10591. Goto(GetAnswer)
  10592.  
  10593. *More
  10594. Log(--,Changed Graphics Mode)
  10595. return
  10596.  
  10597. *ANSI
  10598. loadsub(control\exitwip.ctl)
  10599. SetEqual(/graphics=ANSI)
  10600. Goto(More)
  10601.  
  10602. *ASCII
  10603. loadsub(control\exitwip.ctl)
  10604. SetEqual(/graphics=ASCII)
  10605. Goto(More)
  10606.  
  10607. *WIP
  10608. SetEqual(/graphics=WIP)
  10609. SetNv(wipmode=1)
  10610. Goto(More)
  10611.  
  10612. *RIP
  10613. loadsub(control\exitwip.ctl)
  10614. SetEqual(/graphics=RIP)
  10615. Goto(More)
  10616.  
  10617. *OlHelp
  10618. SetNv(AtPrompt=Yes)
  10619. SetNv(Helpoption=137)
  10620. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  10621. Goto(GetGraph)
  10622.  
  10623. USRBADCTL┐*NewBad
  10624. freespace(%CDRIVE%:)
  10625. if (%ARESP%)<(%MINSPACE%) then
  10626.   log(!!,Drive space low.)
  10627.   quitbbs
  10628.   endif
  10629. appendto(badnames.bbs,%name%)
  10630. log(--,User attempted log on with false info.)
  10631. if (%resp%)<>(%RESP%) then Log(!!,%NAME%'s Reason: "%RESP%")
  10632.  
  10633. Zap(MSG.%NODE%,This message has been automatically generated for you by Powerboard.)
  10634. AppendTo(MSG.%NODE%,)
  10635. AppendTo(MSG.%NODE%,A attempted to logon to the BBS with the name %NAME%)
  10636. AppendTo(MSG.%NODE%,at %TIME% on %DATE%. The information entered by this user was incorrect.)
  10637. if (%resp%)<>() then
  10638.   AppendTo(MSG.%NODE%,)
  10639.   AppendTo(MSG.%NODE%,%RESP%)
  10640. endif
  10641.  
  10642. SeekUser(%SYSOP%)
  10643. SetNv(tousernum=%NDNUMB%)
  10644. If(%ARESP%)=(No) then SetNv(tousernum=1)
  10645. ;if the sysop cannot be located in user file, assume sysop is user #1
  10646.  
  10647. InitTxt
  10648. Lines(MSG.%NODE%)
  10649. Import(MSG.%NODE%,,1,%ARESP%)
  10650.  
  10651. Writemsg(1,Powerboard BBS,%SYSOP%,New Logon With False Info,%nv%tousernum%,Yes,0,No,,)
  10652. Kill(MSG.%NODE%)
  10653.  
  10654. quitbbs
  10655. NEWFWIPCTL setnv(d=)
  10656. setnv(flines=0)
  10657. zap(%pbtemp%wiplist.%node%)
  10658.  
  10659. setnv(carea=0)
  10660. setnv(newf=newf)
  10661. inpclose
  10662.  
  10663. setnv(CurFMode=1)
  10664.  
  10665. *tt0
  10666.  
  10667. if (%nv%newf%)<>(newf) then jump (dispscr)
  10668.  
  10669.  
  10670. if (%nv%newf%)=(newf) then goto (thetop)
  10671.  
  10672. Jump (uparea)
  10673.  
  10674. goto (initbox)
  10675.  
  10676.  
  10677. *thetop
  10678.  
  10679. jump (dispscr)
  10680.  
  10681. *initBox
  10682. setequal(c=14~listbox~%nv%flines%~%nv%high%~)
  10683. jump (wipc)
  10684.  
  10685. jump (dispCurMode)
  10686.  
  10687. if (%nv%newf%)<>(newf) then goto (listfa)
  10688.  
  10689. *GetResp0
  10690. if (%nv%wiprestreq%)=(1) then goto (thetop)
  10691. writeln(got to getresp0)
  10692. setequal(c=0A~)
  10693. jump (wipc)
  10694.  
  10695. goto (getInput)
  10696. *bgi
  10697. writeln(Response from user: "%resp%")
  10698. if (%nv%wiprestreq%)=(1) then goto (thetop)
  10699. if (%resp%)=(A) then goto (dotag)
  10700. if (%resp%)=(Tag) then goto (tagmode)
  10701. if (%resp%)=(Download) then goto (downmode)
  10702. if (%resp%)=(Download Mode) then goto (downmode)
  10703. if (%resp%)=(View) then goto (viewmode)
  10704. if (%resp%)=(Exit) then goto (ret4)
  10705. if (%resp%)=(quit) then goto (ret4)
  10706. setequal(b=%resp%)
  10707. find(&b,,)
  10708. if (%aresp%)<=(1) then goto (NotListC)
  10709. addvar(%aresp%+-1=e)
  10710. addvar(%aresp%+1=f)
  10711. get(&b,1,%var%e)
  10712. setnv(wipc=%aresp%)
  10713. get(&b,%var%f,1000)
  10714. setequal(b=%aresp%)
  10715. if (%var%b)=(-1) then goto (more)
  10716. setequal(/resp=%var%b)
  10717. inpclose
  10718. inpline(%pbtemp%wiplist.%node%,%var%b)
  10719. setequal(d=%aresp%)
  10720. writeln(b: "%var%b" aresp from inpline: "%aresp%")
  10721. inpopen(%pbtemp%wipfile.%node%,4)
  10722. inpread(%nv%d%)
  10723. if (%var%d)=() then goto (getresp0)
  10724. get(&d,1,1)
  10725. if (%aresp%)=( ) then goto (getresp0)
  10726. find(&d, )
  10727. writeln(aresp from find: "%aresp%")
  10728. if (%aresp%)=(0) then goto (getresp0)
  10729. get(&d,1,%aresp%)
  10730. setequal(d=%aresp%)
  10731. rtrim(d)
  10732. if (%nv%curfmode%)=(1) then goto (tagit)
  10733. if (%nv%curfmode%)=(2) then goto (downloadit)
  10734. if (%nv%curfmode%)=(3) then goto (viewit)
  10735. goto (getresp0)
  10736. *NotListC
  10737. find(&b,;)
  10738. if (%aresp%)<=(1) then goto (NoCmnd)
  10739. addvar(%aresp%+-1=e)
  10740. addvar(%aresp%+1=f)
  10741. get(&b,1,%var%e)
  10742. SetNv(WipC=%aresp%)
  10743. setnv(cText=)
  10744. len(%var%b)
  10745. if (%var%f)<=(%aresp%) then
  10746. get(&b,%var%f,1000)
  10747. SetNv(Ctext=%aresp%)
  10748. endif
  10749. if (%nv%wipc%)=(date) then goto (ssetup)
  10750. *NoCmnd
  10751. setnv(wtxt=)
  10752. goto (getResp0)
  10753.  
  10754.  
  10755. *listfa
  10756. seek(%pbtemp%wiplist.%node%)
  10757. ifnottrue(goto(donef))
  10758.  
  10759. inpopen(%pbtemp%wiplist.%node%,4)
  10760.  
  10761. setnv(d=0)
  10762. setnv(m=0)
  10763. setnv(e=0)
  10764. setnv(f=0)
  10765.  
  10766. *more
  10767. setequal(u=0)
  10768. setequal(d=%nv%d%)
  10769. setequal(m=%nv%m%)
  10770. setequal(e=%nv%e%)
  10771. setequal(f=%nv%f%)
  10772. fendif(donea)
  10773.  
  10774. *stLoop
  10775.   inc(u)
  10776.   inc(d)
  10777.   inpread
  10778.   writeln(%aresp%)
  10779.   if (%aresp%)=() then setequal(/aresp= )
  10780.   setequal(c=07~listbox~%aresp%~)
  10781.   jump (wipc)
  10782.   if (%var%u)>(%nv%high%) then goto (donef)
  10783. fendif(donea)
  10784. goto(stloop)
  10785.  
  10786. *done
  10787. inpclose
  10788.  
  10789. cnvtk(%var%e)
  10790. setequal(c=07~listbox~ -- End of File Listing --~)
  10791. jump (wipc)
  10792. goto (donef)
  10793.  
  10794. *none
  10795. setequal(c=07~listbox~There are no files in this area.~)
  10796. jump (wipc)
  10797. goto (donef)
  10798.  
  10799.  
  10800.  
  10801. *NoMore
  10802.  if (%nv%high%)=() then goto (ga0)
  10803. ; writeln(No more matches to the text you specified could be found.)
  10804. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  10805. ; jump (okbox0)
  10806.  goto (donef)
  10807. ; goto (getresp0)
  10808.  
  10809. *GCHAR
  10810. COMPRINT(%NV%TEXT%)
  10811. SETEQUAL(A=0)
  10812. DO
  10813. COMKEY
  10814. ASCII
  10815. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  10816. INC(A)
  10817. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  10818. IF(%ARESP%)=(&B) THEN RET
  10819. IF(&A)>(50) THEN RET
  10820. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  10821. DELAY18TH(2)
  10822. LOOP
  10823. *WIPC
  10824. LOCALKEY(1)
  10825. IFNOTTRUE(GOTO(NOLKEY))
  10826. SYSKEYCHECK
  10827. SETEQUAL(/RESP=)
  10828. SETEQUAL(/RESP=)
  10829. *NOLKEY
  10830. CCARRIER
  10831. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  10832. CHECKSUM(%VAR%C)
  10833. SETEQUAL(B=6)
  10834. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  10835. SETNV(PBACK=)
  10836. JUMP(GCHAR)
  10837. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  10838. setequal(c=%aresp%)
  10839. SETEQUAL(/IBUFF=%NV%PBACK%)
  10840. LEN(%NV%PBACK%)
  10841. SETEQUAL(/IBUFF0=%ARESP%)
  10842. SETEQUAL(/ARESP=%VAR%C)
  10843. RET
  10844. *NOC0
  10845. log(<<,Carrier lost.)
  10846. quitbbs
  10847.  
  10848. *getinput
  10849. writeln(Waiting for input from remote user.)
  10850. setequal(y=180)
  10851. writeln(loading wipask.ctl)
  10852. loadsub(control\wipask.ctl)
  10853. writeln(back from wipask.ctl (1))
  10854. if (%aresp%)<>(24) then goto (bgi)
  10855. writeln(loading time warning.)
  10856. loadsub(control\wipask.ctl,goto(twarn))
  10857. setequal(y=60)
  10858. writeln(loading wipask.ctl (2))
  10859. loadsub(control\wipask.ctl)
  10860. writeln(back from wipask.ctl (2))
  10861. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  10862. writeln(going back to bgi)
  10863. goto (bgi)
  10864.  
  10865. *donef
  10866. ;inc(d)
  10867. setnv(d=%var%d)
  10868. setnv(m=%var%m)
  10869. setnv(e=%var%e)
  10870. setnv(f=%var%f)
  10871. write(Updating list box on user's screen ... )
  10872. setequal(c=07~listbox~-1~)
  10873. jump (wipc)
  10874. setequal(c=0F~listbox~Change File Area~1~1~2~)
  10875. jump (wipc)
  10876. setequal(c=0F~RecCount~20~1~0~1~)
  10877. jump (wipc)
  10878. setequal(c=0F~Exit~Exit~1~1~3~)
  10879. jump (wipc)
  10880. setequal(c=0F~Scrl_UP~~1~1~4~)
  10881. jump (wipc)
  10882. setequal(c=0F~Scrl_Dn~~1~1~5~)
  10883. jump (wipc)
  10884. setequal(c=0F~Page_Up~~1~1~6~)
  10885. jump (wipc)
  10886. setequal(c=0F~Page_Dn~~1~1~7~)
  10887. jump (wipc)
  10888. setequal(c=0A~)
  10889. jump (wipc)
  10890. writeln(Done!)
  10891. goto(getresp0)
  10892.  
  10893. *okbox0
  10894. Jump (wipc)
  10895. comlineinput(180,l)
  10896. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  10897. if (%resp%)=() then goto (okbox)
  10898. ret
  10899.  
  10900. *notext
  10901. writeln(No text was specified.  Enter some text to search for and try again...)
  10902. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  10903. jump (okbox0)
  10904. goto (getresp0)
  10905.  
  10906. *doAdd
  10907. loadsub(control\macros\tag-wip.ctl)
  10908. goto(thetop)
  10909.  
  10910. *okbox0
  10911. Jump (wipc)
  10912. *tryr0
  10913. comlineinput(180,l)
  10914. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  10915. if (%resp%)=() then goto (tryr0)
  10916. ret
  10917.  
  10918. *ret4
  10919. setnv(d=)
  10920. inpclose
  10921. return
  10922.  
  10923. *dispscr
  10924. setnv(high=21)
  10925. setnv(NoInfo=1)
  10926. loadsub(control\ewipscr.ctl,setnv(wipf=%nv%newf%))
  10927. ret
  10928.  
  10929. *dispCurMode
  10930. if (%nv%curfMode%)<>(1) then goto (not1)
  10931. setequal(c=07~status~Now in TAG MODE.  To tag a file, click on the filename you want in the box below:~)
  10932. jump(wipc)
  10933. *not1
  10934. if (%nv%curfmode%)<>(2) then goto (not2)
  10935. setequal(c=07~status~Now in DOWNLOAD MODE.  To download a file, click on the filename you want in the box below:~)
  10936. jump (wipc)
  10937. *not2
  10938. if (%nv%curfmode%)<>(3) then ret
  10939. setequal(c=07~status~Now in VIEW MODE.  To view a file, click on the filename you want to view in the box below:~)
  10940. goto (wipc)
  10941.  
  10942. *tagmode
  10943. setnv(curfmode=1)
  10944. jump (dispcurmode)
  10945. goto (getresp0)
  10946.  
  10947. *downmode
  10948. setnv(curfmode=2)
  10949. jump (dispcurmode)
  10950. goto (getresp0)
  10951.  
  10952. *viewmode
  10953. setnv(curfmode=3)
  10954. jump (dispcurmode)
  10955. goto (getresp0)
  10956.  
  10957. *downloadit
  10958. setnv(filename=%var%d)
  10959. setnv(ctext=%var%d)
  10960. setnv(fromsub=1)
  10961. inpclose
  10962. setnv(flwd=%nv%d%)
  10963. loadsub(control\exitwip.ctl)
  10964. loadsub(control\macros\down.ctl)
  10965. setnv(d=%nv%flwd%)
  10966. setnv(flwd=)
  10967. inpopen(%pbtemp%wiplist.%node%,4)
  10968. inpread(%nv%d%)
  10969. goto (thetop)
  10970. ;goto (InitBox)
  10971.  
  10972. *tagit
  10973. setnv(filename=%var%d)
  10974. setnv(ctext=%var%d)
  10975. setnv(fromsub=1)
  10976. inpclose
  10977. setnv(flwd=%nv%d%)
  10978. loadsub(control\macros\tag-wip.ctl,goto(dotag))
  10979. setnv(d=%nv%flwd%)
  10980. setnv(flwd=)
  10981. inpopen(%pbtemp%wiplist.%node%,4)
  10982. inpread(%nv%d%)
  10983. goto (getresp0)
  10984. ;goto (InitBox)
  10985.  
  10986. *viewit
  10987. setnv(key=%var%d)
  10988. setnv(ctext=%var%d)
  10989. setnv(fromsub=1)
  10990. inpclose
  10991. setnv(flwd=%nv%d%)
  10992. upcase(d)
  10993. find(&d,.TXT)
  10994. if (%aresp%)>(0) then goto (txt)
  10995. find(&d,.ASC)
  10996. if (%aresp%)>(0) then goto (txt)
  10997. loadsub(control\exitwip.ctl)
  10998. setnv(filename=%nv%key%)
  10999. loadsub(control\macros\zview.ctl)
  11000. *bk
  11001. setnv(d=%nv%flwd%)
  11002. setnv(flwd=)
  11003. inpopen(%pbtemp%wiplist.%node%,4)
  11004. inpread(%nv%d%)
  11005. goto (thetop)
  11006. ;goto (InitBox)
  11007.  
  11008. *txt
  11009. loadsub(control\macros\freadwip.ctl)
  11010. goto (bk)
  11011.  
  11012. *ssetup
  11013. setNv(key=%nv%Ctext%)
  11014. setnv(newf=flist)
  11015.  
  11016. goto (tt0)
  11017.  
  11018.  
  11019. *uparea
  11020. if (%nv%carea%)=>(%maxfarea%) then goto (donef)
  11021. addvar(%nv%carea%+1=a)
  11022. setnv(carea=%var%a)
  11023. selfarea(%var%a)
  11024. enufsec(%filsec%)
  11025. ifnottrue(goto (uparea))
  11026.  
  11027. numb(No)
  11028. setnv(fn=%filpath%files.bbs)
  11029. if (%CD%)=(Yes) then setnv(fn=%CDPATH%%var%a\files.bbs)
  11030. write(Retrieving file listing for area #%var%a...)
  11031. inpclose
  11032. listlog()
  11033. ;zap(%pbtemp%wiplist.%node%)
  11034. appendto(%pbtemp%wiplist.%node%, -- File Area #%var%a: %filname% --)
  11035. lines(%nv%fn%)
  11036. setequal(g=%aresp%)
  11037. addvar(%aresp%+%flines%=c)
  11038. setnv(flines=%var%c)
  11039. listlog(%pbtemp%wiplist.%Node%)
  11040. setequal(k=1)
  11041. new(%nv%fn%,12,15,7,11,3,%nv%key%,%var%k,%var%g)
  11042. listlog()
  11043. writeln(Done!)
  11044. if (%nv%d%)=() then ret
  11045. inpopen(%pbtemp%wiplist.%node%,4)
  11046. inpread(%nv%d%)
  11047. ret
  11048.  
  11049. *donea
  11050. setnv(d=%var%d)
  11051. inpclose
  11052. jump (uparea)
  11053. goto (stloop)
  11054.  
  11055. NEWCTLkif (%nv%wipmode%)=(1) then loadmem(control\macros\newfwip.ctl)
  11056. numb(Yes)
  11057. zap(%pbtemp%nofound.%node%)
  11058. setequal(f=%maxfarea%) ;this sets the max area to search...
  11059. TagClear ;clear the tagged files list
  11060. setequal(k=0)
  11061. setequal(g=1)
  11062. clearscr
  11063. Say(&CR&&11&You last checked for new files on &12&/:LASTCHK/&11&. Please enter the date to start)
  11064. Say(the search at or press (&14&ENTER&11&) to start at &12&/:LASTCHK/.)
  11065. setequal(y=15)
  11066. *askagain
  11067. Say(&CR&&15&Please enter the date to start at&12&: &12&(        )&14&*)
  11068. back(9)
  11069. SetFill(/:lastchk/)
  11070. MenuAsk(%CRON%%LEN%8%*)
  11071. setequal(n=%RESP%)
  11072. if (%RESP%)=(<CR>) then setequal(n=/:LASTCHK/)
  11073. Get(%RESP%,1,1)
  11074. If(%ARESP%)=(?) then Goto(OlHelp)
  11075. dateok(%var%n)
  11076. if (%ARESP%)=(No) then goto (invdate)
  11077. loadsub(control\selfilea.ctl)
  11078. clearscr
  11079. setequal(t=0)
  11080. jump(pauseprompt1)
  11081. Say(&11&(Space bar) Aborts.  &14&Searching for "%var%n". . .&CR&)
  11082. log(--,New Files Scan (%var%n))
  11083. spause(2)
  11084. *stsearch
  11085. seekfile(%pbtemp%nofound.%node%,[%var%g])
  11086. iftrue(goto(skCheck))
  11087. selfarea(%var%g)
  11088. enufsec(%FILSEC%)
  11089. if (%ARESP%)=(No) then goto (skcheck)
  11090. *cnew
  11091. eline(79)
  11092. Say(&7&%var%g %FILNAME%|)
  11093. if (%var%t)=(0) then setequal(/nvK=%var%k)
  11094. if (%var%t)=(0) then setequal(/nvStArea=%var%g)
  11095. if (%CD%)=(No) then new(%FILPATH%files.bbs,12,15,7,11,3,%var%n,%var%k)
  11096. if (%CD%)=(Yes) then new (%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n,%var%k)
  11097. notif (%filine%)=(0) then goto (passNoFound)
  11098.   appendto(%pbtemp%nofound.%node%,[%var%g])
  11099. *passNoFound
  11100. if (%didpause%)=(TRUE) then setequal(t=-1)
  11101. inc(t)
  11102. iftrue (goto (enew))
  11103. ifkey( )
  11104. ifTrue (goto (enew)) ;did user hit stop?
  11105. localkey(1)
  11106. notif (%ARESP%)=(No) then goto (enew)
  11107. *skcheck
  11108. if (&g)=>(&f) then goto (enew)
  11109. inc(g)
  11110. goto (stsearch)
  11111.  
  11112. *enew
  11113. if (%didpause%)=(TRUE) then setequal(t=0)
  11114. eline(79)
  11115. selfarea(/:LASTDOWN/)
  11116. setequal(/LASTCHK=%DATE%)
  11117. setequal(k=0)
  11118. DefPause($7$&0&END$0$&3& &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&ENTER&3& to Quit?&12&: &7&)
  11119. defPif(v:view2,h:fhlp,t:tag2,d:down2)
  11120. setequal(/nonstop=0)
  11121. pauseprompt
  11122. jump(pauseprompt)
  11123. numb(No)
  11124. tagclear
  11125. Return
  11126.  
  11127. *invdate
  11128. display(display\INVDATE)
  11129. goto (askagain)
  11130. *view2
  11131. if (%didpause%)=(TRUE) then setequal(t=0)
  11132. setequal(/nvdefpause1=%defpause%)
  11133. setequal(/nvdefpif1=%defpif%)
  11134. setequal(k=%ARESP%)
  11135. loadsub(control\macros\zview.ctl)
  11136. defpause(%nv%defpause1%)
  11137. defpif(%nv%defpif1%)
  11138. goto (blist2)
  11139. *tag2
  11140. if (%didpause%)=(TRUE) then setequal(t=0)
  11141. setequal(k=%ARESP%)
  11142. loadsub(control\macros\numbtag.ctl)
  11143. goto (blist2)
  11144. *down2
  11145. if (%didpause%)=(TRUE) then setequal(t=0)
  11146. setequal(/nvdefpause1=%defpause%)
  11147. setequal(/nvdefpif1=%defpif%)
  11148. setequal(k=%ARESP%)
  11149. loadsub(control\macros\down.ctl)
  11150. defpause(%nv%defpause1%)
  11151. defpif(%nv%defpif1%)
  11152. selfarea(/:Lastdown/)
  11153. goto (blist2)
  11154. *blist2
  11155. spause(0)
  11156. clearscr
  11157. notif (%var%t)=(0) then setequal(k=%nv%k%)
  11158. notif (%var%t)=(0) then setequal(g=%nv%starea%)
  11159. setequal(t=0)
  11160. goto (stsearch)
  11161.  
  11162.         *fhlp
  11163. setequal(k=%ARESP%)
  11164. if (%didpause%)=(TRUE) then setequal(t=0)
  11165. setequal(/nvdefpause1=%defpause%)
  11166. setequal(/nvdefpif1=%defpif%)
  11167. jump(pauseprompt)
  11168. display(display\help\lst,/:SEC/)
  11169. defpause(%nv%defpause1%)
  11170. defpif(%nv%defpif1%)
  11171. goto (blist2)
  11172.  
  11173. *Pauseprompt1
  11174. DefPause($7$&0&More$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop, &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&C&3&:Continue?&12&: &7&)
  11175. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  11176. ret
  11177.  
  11178. *Pauseprompt
  11179. DefPause($7$&0&Send more text$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop or &11&C&3&:Continue?&12&: &7&)
  11180. defPif(s:stop,n:nonstop)
  11181. ret
  11182.  
  11183. *OlHelp
  11184. SetNv(AtPrompt=Yes)
  11185. SetNv(Helpoption=24)
  11186. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  11187. Goto(AskAgain)
  11188. SEARCH-WCTLC setnv(d=)
  11189. setnv(flines=0)
  11190. zap(%pbtemp%wiplist.%node%)
  11191.  
  11192. setnv(carea=0)
  11193. setnv(searchf=searchf)
  11194. inpclose
  11195.  
  11196. setnv(CurFMode=1)
  11197.  
  11198. *tt0
  11199.  
  11200. if (%nv%searchf%)<>(searchf) then jump (dispscr)
  11201.  
  11202.  
  11203. if (%nv%searchf%)=(searchf) then goto (thetop)
  11204.  
  11205. Jump (uparea)
  11206.  
  11207. goto (initbox)
  11208.  
  11209.  
  11210. *thetop
  11211.  
  11212. jump (dispscr)
  11213.  
  11214. *initBox
  11215. setequal(c=14~listbox~%nv%flines%~%nv%high%~)
  11216. jump (wipc)
  11217.  
  11218. jump (dispCurMode)
  11219.  
  11220. if (%nv%searchf%)<>(searchf) then goto (listfa)
  11221.  
  11222. *GetResp0
  11223. if (%nv%wiprestreq%)=(1) then goto (thetop)
  11224. writeln(got to getresp0)
  11225. setequal(c=0A~)
  11226. jump (wipc)
  11227.  
  11228. goto (getInput)
  11229. *bgi
  11230. writeln(Response from user: "%resp%")
  11231. if (%nv%wiprestreq%)=(1) then goto (thetop)
  11232. if (%resp%)=(A) then goto (dotag)
  11233. if (%resp%)=(Tag) then goto (tagmode)
  11234. if (%resp%)=(Download) then goto (downmode)
  11235. if (%resp%)=(Download Mode) then goto (downmode)
  11236. if (%resp%)=(View) then goto (viewmode)
  11237. if (%resp%)=(Exit) then goto (ret4)
  11238. if (%resp%)=(quit) then goto (ret4)
  11239. setequal(b=%resp%)
  11240. find(&b,,)
  11241. if (%aresp%)<=(1) then goto (NotListC)
  11242. addvar(%aresp%+-1=e)
  11243. addvar(%aresp%+1=f)
  11244. get(&b,1,%var%e)
  11245. setnv(wipc=%aresp%)
  11246. get(&b,%var%f,1000)
  11247. setequal(b=%aresp%)
  11248. if (%var%b)=(-1) then goto (more)
  11249. setequal(/resp=%var%b)
  11250. inpclose
  11251. inpline(%pbtemp%wiplist.%node%,%var%b)
  11252. setequal(d=%aresp%)
  11253. writeln(b: "%var%b" aresp from inpline: "%aresp%")
  11254. inpopen(%pbtemp%wipfile.%node%,4)
  11255. inpread(%nv%d%)
  11256. if (%var%d)=() then goto (getresp0)
  11257. get(&d,1,1)
  11258. if (%aresp%)=( ) then goto (getresp0)
  11259. find(&d, )
  11260. writeln(aresp from find: "%aresp%")
  11261. if (%aresp%)=(0) then goto (getresp0)
  11262. get(&d,1,%aresp%)
  11263. setequal(d=%aresp%)
  11264. rtrim(d)
  11265. if (%nv%curfmode%)=(1) then goto (tagit)
  11266. if (%nv%curfmode%)=(2) then goto (downloadit)
  11267. if (%nv%curfmode%)=(3) then goto (viewit)
  11268. goto (getresp0)
  11269. *NotListC
  11270. find(&b,;)
  11271. if (%aresp%)<=(1) then goto (NoCmnd)
  11272. addvar(%aresp%+-1=e)
  11273. addvar(%aresp%+1=f)
  11274. get(&b,1,%var%e)
  11275. SetNv(WipC=%aresp%)
  11276. setnv(cText=)
  11277. len(%var%b)
  11278. if (%var%f)<=(%aresp%) then
  11279. upcase(b)
  11280. get(&b,%var%f,1000)
  11281. SetNv(Ctext=%aresp%)
  11282. endif
  11283. if (%nv%wipc%)=(text) then goto (ssetup)
  11284. *NoCmnd
  11285. setnv(wtxt=)
  11286. goto (getResp0)
  11287.  
  11288.  
  11289. *listfa
  11290. seek(%pbtemp%wiplist.%node%)
  11291. ifnottrue(goto(donef))
  11292.  
  11293. inpopen(%pbtemp%wiplist.%node%,4)
  11294.  
  11295. setnv(d=0)
  11296. setnv(m=0)
  11297. setnv(e=0)
  11298. setnv(f=0)
  11299.  
  11300. *more
  11301. setequal(u=0)
  11302. setequal(d=%nv%d%)
  11303. setequal(m=%nv%m%)
  11304. setequal(e=%nv%e%)
  11305. setequal(f=%nv%f%)
  11306. fendif(donea)
  11307.  
  11308. *stLoop
  11309.   inc(u)
  11310.   inc(d)
  11311.   inpread
  11312.   writeln(%aresp%)
  11313.   if (%aresp%)=() then setequal(/aresp= )
  11314.   setequal(c=07~listbox~%aresp%~)
  11315.   jump (wipc)
  11316.   if (%var%u)>(%nv%high%) then goto (donef)
  11317. fendif(donea)
  11318. goto(stloop)
  11319.  
  11320. *done
  11321. inpclose
  11322.  
  11323. cnvtk(%var%e)
  11324. setequal(c=07~listbox~ -- End of File Listing --~)
  11325. jump (wipc)
  11326. goto (donef)
  11327.  
  11328. *none
  11329. setequal(c=07~listbox~There are no files in this area.~)
  11330. jump (wipc)
  11331. goto (donef)
  11332.  
  11333.  
  11334.  
  11335. *NoMore
  11336.  if (%nv%high%)=() then goto (ga0)
  11337. ; writeln(No more matches to the text you specified could be found.)
  11338. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  11339. ; jump (okbox0)
  11340.  goto (donef)
  11341. ; goto (getresp0)
  11342.  
  11343. *GCHAR
  11344. COMPRINT(%NV%TEXT%)
  11345. SETEQUAL(A=0)
  11346. DO
  11347. COMKEY
  11348. ASCII
  11349. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  11350. INC(A)
  11351. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  11352. IF(%ARESP%)=(&B) THEN RET
  11353. IF(&A)>(50) THEN RET
  11354. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  11355. DELAY18TH(2)
  11356. LOOP
  11357. *WIPC
  11358. LOCALKEY(1)
  11359. IFNOTTRUE(GOTO(NOLKEY))
  11360. SYSKEYCHECK
  11361. SETEQUAL(/RESP=)
  11362. SETEQUAL(/RESP=)
  11363. *NOLKEY
  11364. CCARRIER
  11365. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  11366. CHECKSUM(%VAR%C)
  11367. SETEQUAL(B=6)
  11368. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  11369. SETNV(PBACK=)
  11370. JUMP(GCHAR)
  11371. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  11372. setequal(c=%aresp%)
  11373. SETEQUAL(/IBUFF=%NV%PBACK%)
  11374. LEN(%NV%PBACK%)
  11375. SETEQUAL(/IBUFF0=%ARESP%)
  11376. SETEQUAL(/ARESP=%VAR%C)
  11377. RET
  11378. *NOC0
  11379. log(<<,Carrier lost.)
  11380. quitbbs
  11381.  
  11382. *getinput
  11383. writeln(Waiting for input from remote user.)
  11384. setequal(y=180)
  11385. writeln(loading wipask.ctl)
  11386. loadsub(control\wipask.ctl)
  11387. writeln(back from wipask.ctl (1))
  11388. if (%aresp%)<>(24) then goto (bgi)
  11389. writeln(loading time warning.)
  11390. loadsub(control\wipask.ctl,goto(twarn))
  11391. setequal(y=60)
  11392. writeln(loading wipask.ctl (2))
  11393. loadsub(control\wipask.ctl)
  11394. writeln(back from wipask.ctl (2))
  11395. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  11396. writeln(going back to bgi)
  11397. goto (bgi)
  11398.  
  11399. *donef
  11400. ;inc(d)
  11401. setnv(d=%var%d)
  11402. setnv(m=%var%m)
  11403. setnv(e=%var%e)
  11404. setnv(f=%var%f)
  11405. write(Updating list box on user's screen ... )
  11406. setequal(c=07~listbox~-1~)
  11407. jump (wipc)
  11408. setequal(c=0F~listbox~Change File Area~1~1~2~)
  11409. jump (wipc)
  11410. setequal(c=0F~RecCount~20~1~0~1~)
  11411. jump (wipc)
  11412. setequal(c=0F~Exit~Exit~1~1~3~)
  11413. jump (wipc)
  11414. setequal(c=0F~Scrl_UP~~1~1~4~)
  11415. jump (wipc)
  11416. setequal(c=0F~Scrl_Dn~~1~1~5~)
  11417. jump (wipc)
  11418. setequal(c=0F~Page_Up~~1~1~6~)
  11419. jump (wipc)
  11420. setequal(c=0F~Page_Dn~~1~1~7~)
  11421. jump (wipc)
  11422. setequal(c=0A~)
  11423. jump (wipc)
  11424. writeln(Done!)
  11425. goto(getresp0)
  11426.  
  11427. *okbox0
  11428. Jump (wipc)
  11429. comlineinput(180,l)
  11430. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  11431. if (%resp%)=() then goto (okbox)
  11432. ret
  11433.  
  11434. *notext
  11435. writeln(No text was specified.  Enter some text to search for and try again...)
  11436. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  11437. jump (okbox0)
  11438. goto (getresp0)
  11439.  
  11440. *doAdd
  11441. loadsub(control\macros\tag-wip.ctl)
  11442. goto(thetop)
  11443.  
  11444. *okbox0
  11445. Jump (wipc)
  11446. *tryr0
  11447. comlineinput(180,l)
  11448. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  11449. if (%resp%)=() then goto (tryr0)
  11450. ret
  11451.  
  11452. *ret4
  11453. setnv(d=)
  11454. inpclose
  11455. return
  11456.  
  11457. *dispscr
  11458. setnv(high=21)
  11459. setnv(NoInfo=1)
  11460. loadsub(control\ewipscr.ctl,setnv(wipf=%nv%searchf%))
  11461. ret
  11462.  
  11463. *dispCurMode
  11464. if (%nv%curfMode%)<>(1) then goto (not1)
  11465. setequal(c=07~status~Now in TAG MODE.  To tag a file, click on the filename you want in the box below:~)
  11466. jump(wipc)
  11467. *not1
  11468. if (%nv%curfmode%)<>(2) then goto (not2)
  11469. setequal(c=07~status~Now in DOWNLOAD MODE.  To download a file, click on the filename you want in the box below:~)
  11470. jump (wipc)
  11471. *not2
  11472. if (%nv%curfmode%)<>(3) then ret
  11473. setequal(c=07~status~Now in VIEW MODE.  To view a file, click on the filename you want to view in the box below:~)
  11474. goto (wipc)
  11475.  
  11476. *tagmode
  11477. setnv(curfmode=1)
  11478. jump (dispcurmode)
  11479. goto (getresp0)
  11480.  
  11481. *downmode
  11482. setnv(curfmode=2)
  11483. jump (dispcurmode)
  11484. goto (getresp0)
  11485.  
  11486. *viewmode
  11487. setnv(curfmode=3)
  11488. jump (dispcurmode)
  11489. goto (getresp0)
  11490.  
  11491. *downloadit
  11492. setnv(filename=%var%d)
  11493. setnv(ctext=%var%d)
  11494. setnv(fromsub=1)
  11495. inpclose
  11496. setnv(flwd=%nv%d%)
  11497. loadsub(control\exitwip.ctl)
  11498. loadsub(control\macros\down.ctl)
  11499. setnv(d=%nv%flwd%)
  11500. setnv(flwd=)
  11501. inpopen(%pbtemp%wiplist.%node%,4)
  11502. inpread(%nv%d%)
  11503. goto (thetop)
  11504. ;goto (InitBox)
  11505.  
  11506. *tagit
  11507. setnv(filename=%var%d)
  11508. setnv(ctext=%var%d)
  11509. setnv(fromsub=1)
  11510. inpclose
  11511. setnv(flwd=%nv%d%)
  11512. loadsub(control\macros\tag-wip.ctl,goto(dotag))
  11513. setnv(d=%nv%flwd%)
  11514. setnv(flwd=)
  11515. inpopen(%pbtemp%wiplist.%node%,4)
  11516. inpread(%nv%d%)
  11517. goto (getresp0)
  11518. ;goto (InitBox)
  11519.  
  11520. *viewit
  11521. setnv(key=%var%d)
  11522. setnv(ctext=%var%d)
  11523. setnv(fromsub=1)
  11524. inpclose
  11525. setnv(flwd=%nv%d%)
  11526. upcase(d)
  11527. find(&d,.TXT)
  11528. if (%aresp%)>(0) then goto (txt)
  11529. find(&d,.ASC)
  11530. if (%aresp%)>(0) then goto (txt)
  11531. loadsub(control\exitwip.ctl)
  11532. setnv(filename=%nv%key%)
  11533. loadsub(control\macros\zview.ctl)
  11534. *bk
  11535. setnv(d=%nv%flwd%)
  11536. setnv(flwd=)
  11537. inpopen(%pbtemp%wiplist.%node%,4)
  11538. inpread(%nv%d%)
  11539. goto (thetop)
  11540. ;goto (InitBox)
  11541.  
  11542. *txt
  11543. loadsub(control\macros\freadwip.ctl)
  11544. goto (bk)
  11545.  
  11546. *ssetup
  11547. setNv(key=%nv%Ctext%)
  11548. setnv(searchf=flist)
  11549.  
  11550. goto (tt0)
  11551.  
  11552.  
  11553. *uparea
  11554. if (%nv%carea%)=>(%maxfarea%) then goto (donef)
  11555. addvar(%nv%carea%+1=a)
  11556. setnv(carea=%var%a)
  11557. selfarea(%var%a)
  11558. enufsec(%filsec%)
  11559. ifnottrue(goto (uparea))
  11560.  
  11561. numb(No)
  11562. setnv(fn=%filpath%files.bbs)
  11563. if (%CD%)=(Yes) then setnv(fn=%CDPATH%%var%a\files.bbs)
  11564. write(Retrieving file listing for area #%var%a...)
  11565. inpclose
  11566. listlog()
  11567. ;zap(%pbtemp%wiplist.%node%)
  11568. appendto(%pbtemp%wiplist.%node%, -- File Area #%var%a: %filname% --)
  11569. lines(%nv%fn%)
  11570. setequal(g=%aresp%)
  11571. addvar(%aresp%+%flines%=c)
  11572. setnv(flines=%var%c)
  11573. listlog(%pbtemp%wiplist.%Node%)
  11574. setequal(k=1)
  11575. fsearch(%nv%fn%,12,15,7,11,3,%nv%key%,%var%k,%var%g)
  11576. listlog()
  11577. writeln(Done!)
  11578. if (%nv%d%)=() then ret
  11579. inpopen(%pbtemp%wiplist.%node%,4)
  11580. inpread(%nv%d%)
  11581. ret
  11582.  
  11583. *donea
  11584. setnv(d=%var%d)
  11585. inpclose
  11586. jump (uparea)
  11587. goto (stloop)
  11588.  
  11589. SEARCHCTL if (%nv%wipmode%)=(1) then loadmem(control\macros\search-w.ctl)
  11590. numb(Yes)
  11591. zap(%pbtemp%nofound.%node%)
  11592. TagClear ;clear the number-tag file listing buffer
  11593. setequal(k=0)
  11594. setequal(f=%maxfarea%) ; max area to search...
  11595. setequal(g=1)
  11596. *GetInfo
  11597. clearscr
  11598. display(display\fsearch)
  11599. setequal(y=20)
  11600. MenuAsk(%CRON%&15&Please enter text to search for&12&: &14&*)
  11601. killperc
  11602. if (%RESP%)=(<CR>) then goto (dReturn)
  11603. Get(%RESP%,1,1)
  11604. If(%ARESP%)=(?) then Goto(OlHelp)
  11605. setequal(n=%RESP%)
  11606. loadsub(control\selfilea.ctl)
  11607. log(--,Search (Files) for: %var%n)
  11608. jump(pauseprompt1)
  11609. clearscr
  11610. setequal(t=0)
  11611. Say(&11& Space bar  Aborts.  &14&Searching for "%var%n". . .&CR&)
  11612. spause(2)
  11613. *stsearch
  11614. seekfile(%pbtemp%nofound.%node%,[%var%g])
  11615. iftrue(goto(skCheck))
  11616. selfarea(%var%g)
  11617. eline(79)
  11618. enufsec(%FILSEC%)
  11619. IfNotTrue(goto (skcheck))
  11620. *csearch
  11621. Say(&7&%var%g %FILNAME%|)
  11622. if (%var%t)=(0) then setequal(/nvK=%var%k)
  11623. if (%var%t)=(0) then setequal(/nvStArea=%var%g)
  11624. if (%CD%)=(No) then fsearch(%FILPATH%files.bbs,12,15,7,11,3,%var%n,1,1,%var%k)
  11625. if (%CD%)=(Yes) then fsearch(%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n,1,1,%var%k)
  11626. notif (%filine%)=(0) then goto (passNoFound)
  11627.   appendto(%pbtemp%nofound.%node%,[%var%g])
  11628. *passNoFound
  11629. if (%didpause%)=(TRUE) then setequal(t=-1)
  11630. inc(t)
  11631. iftrue(goto (enew))
  11632. ifkey( )
  11633. if (%ARESP%)=(Yes) then goto (enew) ;did user hit stop?
  11634. localkey(1)
  11635. notif (%ARESP%)=(No) then goto (enew) ;did SYSOP hit stop?
  11636. *skcheck
  11637. if (&g)=>(&f) then goto (enew)
  11638. inc(g)
  11639. goto (stsearch)
  11640.  
  11641. *enew
  11642. if (%didpause%)=(TRUE) then setequal(t=0)
  11643. eline(79)
  11644. selfarea(/:LASTDOWN/)
  11645. setequal(k=0)
  11646. ;linefeed(1)
  11647. ;display(display\sdone)
  11648. DefPause($7$&0&END$0$&3& &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&ENTER&3& to Quit?&12&: &7&)
  11649. defPif(v:view2,h:fhlp,t:tag2,d:down2)
  11650. setequal(/nonstop=0)
  11651. pauseprompt
  11652. jump(pauseprompt)
  11653. *dReturn
  11654. numb(No)
  11655. tagclear
  11656. Return
  11657.  
  11658. *view2
  11659. setequal(k=%ARESP%)
  11660. if (%didpause%)=(TRUE) then setequal(t=0)
  11661. loadsub(control\macros\zview.ctl)
  11662. goto (blist2)
  11663. *tag2
  11664. if (%didpause%)=(TRUE) then setequal(t=0)
  11665. setequal(k=%ARESP%)
  11666. loadsub(control\macros\Numbtag.ctl)
  11667. goto (blist2)
  11668. *down2
  11669. if (%didpause%)=(TRUE) then setequal(t=0)
  11670. setequal(k=%ARESP%)
  11671. loadsub(control\macros\down.ctl)
  11672. selfarea(/:Lastdown/)
  11673. goto (blist2)
  11674. *blist2
  11675. spause(0)
  11676. clearscr
  11677. notif (%var%t)=(0) then setequal(k=%nv%k%)
  11678. notif (%var%t)=(0) then setequal(g=%nv%starea%)
  11679. setequal(t=0)
  11680. goto (stsearch)
  11681.         *fhlp
  11682. setequal(k=%ARESP%)
  11683. if (%didpause%)=(TRUE) then setequal(t=0)
  11684. jump(pauseprompt)
  11685. display(display\help\lst,/:SEC/)
  11686. goto (blist2)
  11687.  
  11688. *Pauseprompt1
  11689. DefPause($7$&0&More$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop, &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&C&3&:Continue?&12&: &7&)
  11690. defPif(s:enew,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  11691. ret
  11692.  
  11693. *Pauseprompt
  11694. DefPause($7$&0&Send more text$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop or &11&C&3&:Continue?&12&: &7&)
  11695. defPif(s:stop,n:nonstop)
  11696. ret
  11697.  
  11698. *OlHelp
  11699. SetNv(AtPrompt=Yes)
  11700. SetNv(Helpoption=28)
  11701. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  11702. Goto(GetInfo)
  11703. WS-WIPCTL< setnv(d=)
  11704. setnv(flines=0)
  11705. zap(%pbtemp%wiplist.%node%)
  11706.  
  11707. setnv(carea=0)
  11708. setnv(searchw=searchw)
  11709. inpclose
  11710.  
  11711. setnv(CurFMode=1)
  11712.  
  11713. *tt0
  11714.  
  11715. if (%nv%searchw%)<>(searchw) then jump (dispscr)
  11716.  
  11717.  
  11718. if (%nv%searchw%)=(searchw) then goto (thetop)
  11719.  
  11720. Jump (uparea)
  11721.  
  11722. goto (initbox)
  11723.  
  11724.  
  11725. *thetop
  11726.  
  11727. jump (dispscr)
  11728.  
  11729. *initBox
  11730. setequal(c=14~listbox~%nv%flines%~%nv%high%~)
  11731. jump (wipc)
  11732.  
  11733. jump (dispCurMode)
  11734.  
  11735. if (%nv%searchw%)<>(searchw) then goto (listfa)
  11736.  
  11737. *GetResp0
  11738. if (%nv%wiprestreq%)=(1) then goto (thetop)
  11739. writeln(got to getresp0)
  11740. setequal(c=0A~)
  11741. jump (wipc)
  11742.  
  11743. goto (getInput)
  11744. *bgi
  11745. writeln(Response from user: "%resp%")
  11746. if (%nv%wiprestreq%)=(1) then goto (thetop)
  11747. if (%resp%)=(A) then goto (dotag)
  11748. if (%resp%)=(Tag) then goto (tagmode)
  11749. if (%resp%)=(Download) then goto (downmode)
  11750. if (%resp%)=(Download Mode) then goto (downmode)
  11751. if (%resp%)=(View) then goto (viewmode)
  11752. if (%resp%)=(Exit) then goto (ret4)
  11753. if (%resp%)=(quit) then goto (ret4)
  11754. setequal(b=%resp%)
  11755. find(&b,,)
  11756. if (%aresp%)<=(1) then goto (NotListC)
  11757. addvar(%aresp%+-1=e)
  11758. addvar(%aresp%+1=f)
  11759. get(&b,1,%var%e)
  11760. setnv(wipc=%aresp%)
  11761. get(&b,%var%f,1000)
  11762. setequal(b=%aresp%)
  11763. if (%var%b)=(-1) then goto (more)
  11764. setequal(/resp=%var%b)
  11765. inpclose
  11766. inpline(%pbtemp%wiplist.%node%,%var%b)
  11767. setequal(d=%aresp%)
  11768. writeln(b: "%var%b" aresp from inpline: "%aresp%")
  11769. inpopen(%pbtemp%wipfile.%node%,4)
  11770. inpread(%nv%d%)
  11771. if (%var%d)=() then goto (getresp0)
  11772. get(&d,1,1)
  11773. if (%aresp%)=( ) then goto (getresp0)
  11774. find(&d, )
  11775. writeln(aresp from find: "%aresp%")
  11776. if (%aresp%)=(0) then goto (getresp0)
  11777. get(&d,1,%aresp%)
  11778. setequal(d=%aresp%)
  11779. rtrim(d)
  11780. if (%nv%curfmode%)=(1) then goto (tagit)
  11781. if (%nv%curfmode%)=(2) then goto (downloadit)
  11782. if (%nv%curfmode%)=(3) then goto (viewit)
  11783. goto (getresp0)
  11784. *NotListC
  11785. find(&b,;)
  11786. if (%aresp%)<=(1) then goto (NoCmnd)
  11787. addvar(%aresp%+-1=e)
  11788. addvar(%aresp%+1=f)
  11789. get(&b,1,%var%e)
  11790. SetNv(WipC=%aresp%)
  11791. setnv(cText=)
  11792. len(%var%b)
  11793. if (%var%f)<=(%aresp%) then
  11794. get(&b,%var%f,1000)
  11795. SetNv(Ctext=%aresp%)
  11796. endif
  11797. if (%nv%wipc%)=(text) then goto (ssetup)
  11798. *NoCmnd
  11799. setnv(wtxt=)
  11800. goto (getResp0)
  11801.  
  11802.  
  11803. *listfa
  11804. seek(%pbtemp%wiplist.%node%)
  11805. ifnottrue(goto(donef))
  11806.  
  11807. inpopen(%pbtemp%wiplist.%node%,4)
  11808.  
  11809. setnv(d=0)
  11810. setnv(m=0)
  11811. setnv(e=0)
  11812. setnv(f=0)
  11813.  
  11814. *more
  11815. setequal(u=0)
  11816. setequal(d=%nv%d%)
  11817. setequal(m=%nv%m%)
  11818. setequal(e=%nv%e%)
  11819. setequal(f=%nv%f%)
  11820. fendif(donea)
  11821.  
  11822. *stLoop
  11823.   inc(u)
  11824.   inc(d)
  11825.   inpread
  11826.   writeln(%aresp%)
  11827.   if (%aresp%)=() then setequal(/aresp= )
  11828.   setequal(c=07~listbox~%aresp%~)
  11829.   jump (wipc)
  11830.   if (%var%u)>(%nv%high%) then goto (donef)
  11831. fendif(donea)
  11832. goto(stloop)
  11833.  
  11834. *done
  11835. inpclose
  11836.  
  11837. cnvtk(%var%e)
  11838. setequal(c=07~listbox~ -- End of File Listing --~)
  11839. jump (wipc)
  11840. goto (donef)
  11841.  
  11842. *none
  11843. setequal(c=07~listbox~There are no files in this area.~)
  11844. jump (wipc)
  11845. goto (donef)
  11846.  
  11847.  
  11848.  
  11849. *NoMore
  11850.  if (%nv%high%)=() then goto (ga0)
  11851. ; writeln(No more matches to the text you specified could be found.)
  11852. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  11853. ; jump (okbox0)
  11854.  goto (donef)
  11855. ; goto (getresp0)
  11856.  
  11857. *GCHAR
  11858. COMPRINT(%NV%TEXT%)
  11859. SETEQUAL(A=0)
  11860. DO
  11861. COMKEY
  11862. ASCII
  11863. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  11864. INC(A)
  11865. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  11866. IF(%ARESP%)=(&B) THEN RET
  11867. IF(&A)>(50) THEN RET
  11868. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  11869. DELAY18TH(2)
  11870. LOOP
  11871. *WIPC
  11872. LOCALKEY(1)
  11873. IFNOTTRUE(GOTO(NOLKEY))
  11874. SYSKEYCHECK
  11875. SETEQUAL(/RESP=)
  11876. SETEQUAL(/RESP=)
  11877. *NOLKEY
  11878. CCARRIER
  11879. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  11880. CHECKSUM(%VAR%C)
  11881. SETEQUAL(B=6)
  11882. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  11883. SETNV(PBACK=)
  11884. JUMP(GCHAR)
  11885. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  11886. setequal(c=%aresp%)
  11887. SETEQUAL(/IBUFF=%NV%PBACK%)
  11888. LEN(%NV%PBACK%)
  11889. SETEQUAL(/IBUFF0=%ARESP%)
  11890. SETEQUAL(/ARESP=%VAR%C)
  11891. RET
  11892. *NOC0
  11893. log(<<,Carrier lost.)
  11894. quitbbs
  11895.  
  11896. *getinput
  11897. writeln(Waiting for input from remote user.)
  11898. setequal(y=180)
  11899. writeln(loading wipask.ctl)
  11900. loadsub(control\wipask.ctl)
  11901. writeln(back from wipask.ctl (1))
  11902. if (%aresp%)<>(24) then goto (bgi)
  11903. writeln(loading time warning.)
  11904. loadsub(control\wipask.ctl,goto(twarn))
  11905. setequal(y=60)
  11906. writeln(loading wipask.ctl (2))
  11907. loadsub(control\wipask.ctl)
  11908. writeln(back from wipask.ctl (2))
  11909. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  11910. writeln(going back to bgi)
  11911. goto (bgi)
  11912.  
  11913. *donef
  11914. ;inc(d)
  11915. setnv(d=%var%d)
  11916. setnv(m=%var%m)
  11917. setnv(e=%var%e)
  11918. setnv(f=%var%f)
  11919. write(Updating list box on user's screen ... )
  11920. setequal(c=07~listbox~-1~)
  11921. jump (wipc)
  11922. setequal(c=0F~listbox~Change File Area~1~1~2~)
  11923. jump (wipc)
  11924. setequal(c=0F~RecCount~20~1~0~1~)
  11925. jump (wipc)
  11926. setequal(c=0F~Exit~Exit~1~1~3~)
  11927. jump (wipc)
  11928. setequal(c=0F~Scrl_UP~~1~1~4~)
  11929. jump (wipc)
  11930. setequal(c=0F~Scrl_Dn~~1~1~5~)
  11931. jump (wipc)
  11932. setequal(c=0F~Page_Up~~1~1~6~)
  11933. jump (wipc)
  11934. setequal(c=0F~Page_Dn~~1~1~7~)
  11935. jump (wipc)
  11936. setequal(c=0A~)
  11937. jump (wipc)
  11938. writeln(Done!)
  11939. goto(getresp0)
  11940.  
  11941. *okbox0
  11942. Jump (wipc)
  11943. comlineinput(180,l)
  11944. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  11945. if (%resp%)=() then goto (okbox)
  11946. ret
  11947.  
  11948. *notext
  11949. writeln(No text was specified.  Enter some text to search for and try again...)
  11950. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  11951. jump (okbox0)
  11952. goto (getresp0)
  11953.  
  11954. *doAdd
  11955. loadsub(control\macros\tag-wip.ctl)
  11956. goto(thetop)
  11957.  
  11958. *okbox0
  11959. Jump (wipc)
  11960. *tryr0
  11961. comlineinput(180,l)
  11962. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  11963. if (%resp%)=() then goto (tryr0)
  11964. ret
  11965.  
  11966. *ret4
  11967. setnv(d=)
  11968. inpclose
  11969. return
  11970.  
  11971. *dispscr
  11972. setnv(high=21)
  11973. setnv(NoInfo=1)
  11974. loadsub(control\ewipscr.ctl,setnv(wipf=%nv%searchw%))
  11975. ret
  11976.  
  11977. *dispCurMode
  11978. if (%nv%curfMode%)<>(1) then goto (not1)
  11979. setequal(c=07~status~Now in TAG MODE.  To tag a file, click on the filename you want in the box below:~)
  11980. jump(wipc)
  11981. *not1
  11982. if (%nv%curfmode%)<>(2) then goto (not2)
  11983. setequal(c=07~status~Now in DOWNLOAD MODE.  To download a file, click on the filename you want in the box below:~)
  11984. jump (wipc)
  11985. *not2
  11986. if (%nv%curfmode%)<>(3) then ret
  11987. setequal(c=07~status~Now in VIEW MODE.  To view a file, click on the filename you want to view in the box below:~)
  11988. goto (wipc)
  11989.  
  11990. *tagmode
  11991. setnv(curfmode=1)
  11992. jump (dispcurmode)
  11993. goto (getresp0)
  11994.  
  11995. *downmode
  11996. setnv(curfmode=2)
  11997. jump (dispcurmode)
  11998. goto (getresp0)
  11999.  
  12000. *viewmode
  12001. setnv(curfmode=3)
  12002. jump (dispcurmode)
  12003. goto (getresp0)
  12004.  
  12005. *downloadit
  12006. setnv(filename=%var%d)
  12007. setnv(ctext=%var%d)
  12008. setnv(fromsub=1)
  12009. inpclose
  12010. setnv(flwd=%nv%d%)
  12011. loadsub(control\exitwip.ctl)
  12012. loadsub(control\macros\down.ctl)
  12013. setnv(d=%nv%flwd%)
  12014. setnv(flwd=)
  12015. inpopen(%pbtemp%wiplist.%node%,4)
  12016. inpread(%nv%d%)
  12017. goto (thetop)
  12018. ;goto (InitBox)
  12019.  
  12020. *tagit
  12021. setnv(filename=%var%d)
  12022. setnv(ctext=%var%d)
  12023. setnv(fromsub=1)
  12024. inpclose
  12025. setnv(flwd=%nv%d%)
  12026. loadsub(control\macros\tag-wip.ctl,goto(dotag))
  12027. setnv(d=%nv%flwd%)
  12028. setnv(flwd=)
  12029. inpopen(%pbtemp%wiplist.%node%,4)
  12030. inpread(%nv%d%)
  12031. goto (getresp0)
  12032. ;goto (InitBox)
  12033.  
  12034. *viewit
  12035. setnv(key=%var%d)
  12036. setnv(ctext=%var%d)
  12037. setnv(fromsub=1)
  12038. inpclose
  12039. setnv(flwd=%nv%d%)
  12040. upcase(d)
  12041. find(&d,.TXT)
  12042. if (%aresp%)>(0) then goto (txt)
  12043. find(&d,.ASC)
  12044. if (%aresp%)>(0) then goto (txt)
  12045. loadsub(control\exitwip.ctl)
  12046. setnv(filename=%nv%key%)
  12047. loadsub(control\macros\zview.ctl)
  12048. *bk
  12049. setnv(d=%nv%flwd%)
  12050. setnv(flwd=)
  12051. inpopen(%pbtemp%wiplist.%node%,4)
  12052. inpread(%nv%d%)
  12053. goto (thetop)
  12054. ;goto (InitBox)
  12055.  
  12056. *txt
  12057. loadsub(control\macros\freadwip.ctl)
  12058. goto (bk)
  12059.  
  12060. *ssetup
  12061. setNv(key=%nv%Ctext%)
  12062. setnv(searchw=flist)
  12063.  
  12064. goto (tt0)
  12065.  
  12066.  
  12067. *uparea
  12068. if (%nv%carea%)=>(%maxfarea%) then goto (donef)
  12069. addvar(%nv%carea%+1=a)
  12070. setnv(carea=%var%a)
  12071. selfarea(%var%a)
  12072. enufsec(%filsec%)
  12073. ifnottrue(goto (uparea))
  12074.  
  12075. numb(No)
  12076. setnv(fn=%filpath%files.bbs)
  12077. if (%CD%)=(Yes) then setnv(fn=%CDPATH%%var%a\files.bbs)
  12078. write(Retrieving file listing for area #%var%a...)
  12079. inpclose
  12080. listlog()
  12081. ;zap(%pbtemp%wiplist.%node%)
  12082. appendto(%pbtemp%wiplist.%node%, -- File Area #%var%a: %filname% --)
  12083. lines(%nv%fn%)
  12084. setequal(g=%aresp%)
  12085. addvar(%aresp%+%flines%=c)
  12086. setnv(flines=%var%c)
  12087. listlog(%pbtemp%wiplist.%Node%)
  12088. setequal(k=1)
  12089. wsearch(%nv%fn%,12,15,7,11,3,%nv%key%,1,1,%var%k,%var%g)
  12090. listlog()
  12091. writeln(Done!)
  12092. if (%nv%d%)=() then ret
  12093. inpopen(%pbtemp%wiplist.%node%,4)
  12094. inpread(%nv%d%)
  12095. ret
  12096.  
  12097. *donea
  12098. setnv(d=%var%d)
  12099. inpclose
  12100. jump (uparea)
  12101. goto (stloop)
  12102.  
  12103. WSEARCHCTL; if (%nv%wipmode%)=(1) then loadmem(control\macros\ws-wip.ctl)
  12104. numb(Yes)
  12105. zap(%pbtemp%nofound.%node%)
  12106. tagclear
  12107. setequal(f=%maxfarea%) ;this is the max area to search
  12108. setequal(k=0)
  12109. setequal(g=1)
  12110. *GetInput
  12111. clearscr
  12112. display(display\wsearch)
  12113. Say(&15&File to search for (Wildcards are valid)&12&: &15&(            )&14&*)
  12114. back(13)
  12115. setequal(y=20)
  12116. MenuAsk(%CRON%%LEN%12%*)
  12117. if (%RESP%)=(<CR>) then goto (dr)
  12118. Get(%RESP%,1,1)
  12119. If(%ARESP%)=(?) then Goto(OlHelp)
  12120. find(%resp%,.)
  12121. ifnottrue(combine(%resp%+.*=e))
  12122. ifnottrue(setequal(/resp=%var%e))
  12123. setequal(n=%RESP%)
  12124. loadsub(control\selfilea.ctl)
  12125. log(--,Wildcard Search for: %var%n)
  12126. jump(pauseprompt1)
  12127. clearscr
  12128. setequal(t=0)
  12129. Say(&11& Space bar  Aborts.  &14&Searching for "%var%n"     &CR&)
  12130. spause(2)
  12131. *stsearch
  12132. seekfile(%pbtemp%nofound.%node%,[%var%g])
  12133. iftrue(goto(skCheck))
  12134. selfarea(%var%g)
  12135. eline(79)
  12136. enufsec(%FILSEC%)
  12137. ifNotTrue (goto (skcheck))
  12138. *csearch
  12139. Say(&7&%var%g %FILNAME%|)
  12140. if (%var%t)=(0) then setequal(/nvK=%var%k)
  12141. if (%var%t)=(0) then setequal(/nvStArea=%var%g)
  12142. if (%CD%)=(No) then wsearch(%FILPATH%files.bbs,12,15,7,11,3,%var%n,1,1,%var%k)
  12143. if (%CD%)=(Yes) then wsearch(%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n,1,1,%var%k)
  12144. notif (%filine%)=(0) then goto (passNoFound)
  12145.   appendto(%pbtemp%nofound.%node%,[%var%g])
  12146. *passNoFound
  12147. if (%didpause%)=(TRUE) then setequal(t=-1)
  12148. inc(t)
  12149. ifTrue (goto (enew))
  12150. ifkey( )
  12151. ifTrue (goto (enew)) ;did user hit stop?
  12152. localkey(1)
  12153. notif (%ARESP%)=(No) then goto (enew)
  12154. *skcheck
  12155. if (&g)=>(&f) then goto (enew)
  12156. inc(g)
  12157. goto (stsearch)
  12158.  
  12159. *enew
  12160. if (%didpause%)=(TRUE) then setequal(t=0)
  12161. eline(79)
  12162. selfarea(/:LASTDOWN/)
  12163. setequal(k=0)
  12164. ;display(display\sdone)
  12165. DefPause($7$&0&END$0$&3& &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&ENTER&3& to Quit?&12&: &7&)
  12166. defPif(v:view2,h:fhlp,t:tag2,d:down2)
  12167. setequal(/nonstop=0)
  12168. pauseprompt
  12169. jump(pauseprompt)
  12170. *dr
  12171. numb(No)
  12172. tagclear
  12173. Return
  12174.  
  12175. *view2
  12176. if (%didpause%)=(TRUE) then setequal(t=0)
  12177. setequal(k=%ARESP%)
  12178. loadsub(control\macros\zview.ctl)
  12179. goto (blist2)
  12180. *tag2
  12181. if (%didpause%)=(TRUE) then setequal(t=0)
  12182. setequal(k=%ARESP%)
  12183. loadsub(control\macros\numbtag.ctl)
  12184. goto (blist2)
  12185. *down2
  12186. if (%didpause%)=(TRUE) then setequal(t=0)
  12187. setequal(k=%ARESP%)
  12188. loadsub(control\macros\down.ctl)
  12189. selfarea(/:Lastdown/)
  12190. goto (blist2)
  12191. *blist2
  12192. spause(0)
  12193. notif (%var%t)=(0) then setequal(k=%nv%k%)
  12194. notif (%var%t)=(0) then setequal(g=%nv%starea%)
  12195. clearscr
  12196. setequal(t=0)
  12197. goto (stsearch)
  12198.         *fhlp
  12199. setequal(k=%ARESP%)
  12200. if (%didpause%)=(TRUE) then setequal(t=0)
  12201. jump(pauseprompt)
  12202. display(display\help\lst,/:SEC/)
  12203. goto (blist2)
  12204.  
  12205. *Pauseprompt
  12206. DefPause($7$&0&Send more text$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop or &11&C&3&:Continue?&12&: &7&)
  12207. defPif(s:stop,n:nonstop)
  12208. ret
  12209.  
  12210. *Pauseprompt1
  12211. DefPause($7$&0&More$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop, &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&C&3&:Continue?&12&: &7&)
  12212. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  12213. ret
  12214.  
  12215. *OlHelp
  12216. SetNv(AtPrompt=Yes)
  12217. SetNv(Helpoption=30)
  12218. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  12219. Goto(GetInput)
  12220. BANKCTL╫!loadsub(control\exitwip.ctl)
  12221.    if (%event%)=(TRUE) then loadmem(control\macros\event.ctl)
  12222.  
  12223. ;TIMEBANK by Doug Vermes with modifications by Scott Brown
  12224.  
  12225. log(--,Entered Time Bank)
  12226. *TimeBank
  12227. ClearScr
  12228. CursorOff
  12229. SetEqual(/nvselected=1)
  12230. If (%GRAPHICS%)=(ASCII) then goto (NoGraphics)
  12231. Display(display\tbank2)
  12232. SetEqual(t=/:INT1/) 
  12233. Jump(WelcScreen)
  12234. Jump(ops)
  12235. SeekUser(/:NAME/)
  12236. SetEqual(n=%NDNUMB%)
  12237. *MORE
  12238. Seek (maxlimit.dat)
  12239. ifnottrue(goto (NoLim))
  12240. InpLine (maxlimit.dat,1)
  12241. SetEqual (m=%ARESP%)
  12242. *bak
  12243. cmpval (%var%t,%var%m)
  12244. ifnottrue (SetEqual (t=%var%m))
  12245. *MORE2
  12246. LoadSub(control\macros\checkkey.ctl)
  12247. If(%RESP%)=(<CR>) then Goto(DoIt)
  12248. *THECHECK
  12249. BigIf (8:Up,2:Down,W:Withdraw,D:Deposit,q:quit)
  12250. if (%resp%)=(G) then loadmem(control\macros\bye.ctl)
  12251. If(%RESP%)=(?) then
  12252.   Jump(olhelp)
  12253.   Goto(TimeBank)
  12254.  endif
  12255. goto (more2)
  12256.  
  12257. *Up
  12258. SetEqual(/nvj=%VAR%J)
  12259. AddVar(%NV%SELECTED%+-1=j)
  12260. if(&j)<(1) then SetEqual(j=3)
  12261. SetEqual(/nvselected=%VAR%J)
  12262. SetEqual(j=%NV%J%)
  12263. SetEqual(/nvj=)
  12264. Jump(ops)
  12265. Goto(more2)
  12266.  
  12267. *Down
  12268. SetEqual(/nvj=%VAR%J)
  12269. AddVar(%NV%SELECTED%+1=j)
  12270. if(&j)>(3) then SetEqual(j=1)
  12271. SetEqual(/nvselected=%VAR%J)
  12272. SetEqual(j=%NV%J%)
  12273. SetEqual(/nvj=)
  12274. Jump(ops)
  12275. Goto(more2)
  12276.  
  12277. *DoIt
  12278. If(%NV%SELECTED%)=(1) then Goto(Withdraw)
  12279. If(%NV%SELECTED%)=(2) then Goto(Deposit)
  12280. If(%NV%SELECTED%)=(3) then Goto(quit)
  12281. Jump(Ops)
  12282. Goto(more2)
  12283.  
  12284. *NoLimit
  12285.  SetEqual (m=99999)
  12286.  Say (&14&The maximum number of minutes allowed to be stored is %var%m.)
  12287.  Say (&7&Minutes Currently Stored in Bank: &15&%var%t)
  12288.  Say(&14&Time Currently Left: &15&/:LEFT/)
  12289.  goto (more2)
  12290.  
  12291. *Deposit
  12292.    Jump(ClearBox)
  12293.    AnsiGoto (4,8)
  12294.    Say (&12&         Bank Limit: &15&%VAR%M minutes)
  12295.    AnsiGoto (4,9)
  12296.    Say (&12&    Current Balance: &15&%var%t minutes*)
  12297.    AnsiGoto (4,10)
  12298.    Say (&12&Time Currently Left: &15&/:LEFT/ minutes)
  12299.    AnsiGoto (4,12)
  12300.    menuask (%CRON%%LEN%18%&12&Deposit How Many Minutes? &15&*)
  12301.  *Checks
  12302.  If(%RESP%)=(<CR>) then
  12303.    AnsiGoto(4,13)
  12304.    Say(&12&Transaction Cancelled!)
  12305.    SecPause(1)
  12306.    Jump(ClearBox)
  12307.    Jump(WelcScreen)
  12308.    Goto(more2)
  12309.   endif
  12310.  Number (%RESP%)
  12311.  If (%RESP%)=(0) then goto (finale)
  12312.  IfNotTrue (goto (Deposit))
  12313.  SetEqual (v=/:LEFT/)
  12314.  inc(v)
  12315.  CmpVal (%RESP%,%var%v)
  12316.  IfNotTrue(goto (toolarge1))
  12317.  Addvar (%var%t+%RESP%=e)
  12318.  AddVar (%var%m+1=g)
  12319.  CmpVal (%var%e,%var%g)
  12320.  IfNotTrue(goto (OverMax))
  12321.  AddVar (%var%t+%RESP%=T)
  12322.  SetEqual(/int1=%VAR%T)
  12323.  SetEqual (y=%RESP%)
  12324.  log(--,Deposited %VAR%Y minutes in Bank)
  12325.  If(&y)=(/:LEFT/) then Log(<<,Auto-Disconnect: No Time Remaining After Deposit)
  12326.  Addvar(/:LEFT/+-%var%y=x)
  12327.  jump(setleft)
  12328.  Goto (Finale)
  12329.  
  12330. *Withdraw
  12331.    Jump(ClearBox)
  12332.    AnsiGoto (4,8)
  12333.    Say (&12&    Current Balance: &15&%var%t minutes*)
  12334.    AnsiGoto (4,9)
  12335.    Say (&12&Time Currently Left: &15&/:LEFT/ minutes)
  12336.    AnsiGoto (4,11)
  12337.    menuAsk (%CRON%%LEN%17%&12&Withdraw How Many Minutes? &15&*)
  12338. *Checks2
  12339. If(%RESP%)=(<CR>) then
  12340.    AnsiGoto(4,13)
  12341.    Say(&12&Transaction Cancelled!)
  12342.    SecPause(1)
  12343.    Jump(ClearBox)
  12344.    Jump(WelcScreen)
  12345.    Goto(more2)
  12346.  endif
  12347.  Number (%RESP%)
  12348.  IfNotTrue(goto (withdraw))
  12349.  inc(t)
  12350.  CmpVal (%RESP%,%var%t)
  12351.  IfNotTrue(goto (toolarge))
  12352.  addvar(&t+-1=t)
  12353.  AddVar (%var%T+-%RESP%=T)
  12354.  SetEqual(/int1=%VAR%T)
  12355.  SetEqual (y=%RESP%)
  12356.  AddVar(/:LEFT/+%var%y=x)
  12357.  log(--,Withdrew %VAR%Y minutes from Bank)
  12358.  jump(setleft)
  12359.  Goto (Finale)
  12360.  
  12361. *Finale
  12362.  Jump(ClearBox)
  12363.  AnsiGoto (4,10)
  12364.  Say (&12&    Current Balance: &15&%var%t minutes*)
  12365.  AnsiGoto (4,11)
  12366.  Say (&12&Time Currently Left: &15&/:LEFT/ minutes)
  12367.  SecPause(3)
  12368.  Jump(ClearBox)
  12369.  Jump(WelcScreen)
  12370.  Goto (more2)
  12371.  
  12372. *TooLarge1
  12373.  Jump(ClearBox)
  12374.  AnsiGoto (4,9)
  12375.  Say(&4&                 HEY!!!!!!!!)
  12376.  AnsiGoto(4,11)
  12377.  Say(&12&       You don't have %RESP% minutes left!)
  12378.  SecPause (2)
  12379.  Goto (Deposit)
  12380.  
  12381. *TooLarge
  12382.  Jump(ClearBox)
  12383.  AnsiGoto (4,9)
  12384.  Say(&4&                 HEY!!!!!!!!)
  12385.  AnsiGoto(4,11)
  12386.  Say(&12&         You don't have %RESP% minutes)
  12387.  AnsiGoto(4,12)
  12388.  Say(&12&         stored in the bank!)
  12389.  addvar(%var%t+-1=t)
  12390.  SecPause (2)
  12391.  Goto (Withdraw)
  12392.  
  12393. *OverMax
  12394.  Jump(ClearBox)
  12395.  AnsiGoto (4,9)
  12396.  Say(&4&                 Sorry--------)
  12397.  AnsiGoto(4,11)
  12398.  Say(&12&         You are only allowed to store)
  12399.  AnsiGoto(4,12)
  12400.  Say(&12&         %VAR%M minutes in the bank.)
  12401.  SecPause (2)
  12402.  Goto (Deposit)
  12403.  
  12404. *Quit
  12405.  Jump(clearbox)
  12406.  AnsiGoto (4,11)
  12407.  Say (&12&     Thank You and Have a Nice Day!)
  12408.  SecPause(1)
  12409.  ClearScr
  12410.  CursorOn
  12411.  goto (ret0)
  12412.  
  12413. *NoGraphics
  12414. ClearScr
  12415. Say (                            %BBS% Time Bank)
  12416. Say (                              (NON-GRAPHICS MODE))
  12417. Say (&CR&Searching for your account....*)
  12418. SeekUser(/:NAME/)
  12419. ifnottrue(goto (nonuser))
  12420. SetEqual(n=%NDNUMB%)
  12421. SetEqual(t=/:INT1/)
  12422. *MORE222
  12423. Say (Found!)
  12424. Seek (maxlimit.dat)
  12425. ifnottrue(goto (NoLimit2))
  12426. InpLine (maxlimit.dat,1)
  12427. SetEqual (m=%ARESP%)
  12428. cmpval (%var%t,%var%m)
  12429. ifnottrue(SetEqual (t=%var%m))
  12430. Say (&CR&The maximum number of minutes allowed to be stored is %var%m.)
  12431. Say (Minutes Currently Stored in Bank: %var%t)
  12432. Say(Time Currently Left: /:LEFT/)
  12433. *MORE22
  12434. Say (&CR&(W)ithdraw Time, (D)eposit Time, (Q)uit Bank, (G)oodbye: *)
  12435. MenuKey
  12436. BigNiceSay (Q:Quit,W:Withdraw,D:Deposit,G:Goodbye)
  12437. BigIf (W:Withdraw2,D:Deposit2,q:quit2)
  12438. if (%resp%)=(G) then loadmem(control\macros\bye.ctl)
  12439. If(%RESP%)=(?) then Jump(olhelp)
  12440. goto (more22)
  12441.  
  12442. *NoLimit2
  12443.  SetEqual (m=99999)
  12444.  Say (The maximum number of minutes allowed to be stored is %var%m.)
  12445.  Say (Minutes Currently Stored in Bank: %var%t)
  12446.  Say(Time Currently Left: /:LEFT/)
  12447.  goto (more22)
  12448.  
  12449. *Deposit2
  12450.  menuAsk (Deposit How Many Minutes? *)
  12451.  Number (%RESP%)
  12452.  If (%RESP%)=(0) then goto (finale2)
  12453.  If (%ARESP%)=(No) then goto (Deposit2)
  12454.  SetEqual (v=/:LEFT/)
  12455.  inc(v)
  12456.  CmpVal (%RESP%,%var%v)
  12457.  ifnottrue(goto (toolarge12))
  12458.  Addvar (%var%t+%RESP%=e)
  12459.  AddVar (%var%m+1=g)
  12460.  CmpVal (%var%e,%var%g)
  12461.  ifnottrue(goto (OverMax2))
  12462.  AddVar (%var%t+%RESP%=T)
  12463.  SetEqual(/int1=%VAR%T)
  12464.  SetEqual (y=%RESP%)
  12465.  Addvar(/:LEFT/+-%var%y=x)
  12466.  log(--,Deposited %VAR%Y minutes in Bank)
  12467.  jump(setleft)
  12468.  Goto (Finale2)
  12469.  
  12470. *Withdraw2
  12471.  menuAsk (Withdraw How Many Minutes? *)
  12472.  Number (%RESP%)
  12473.  IfNotTrue(goto (withdraw2))
  12474.  inc(t)
  12475.  CmpVal (%RESP%,%var%t)
  12476.  IfNotTrue(goto (toolarge2))
  12477.  addvar(&t+-1=t)
  12478.  AddVar (%var%T+-%RESP%=T)
  12479.  SetEqual(/int1=%VAR%T)
  12480.  SetEqual (y=%RESP%)
  12481.  AddVar(/:LEFT/+%var%y=x)
  12482.  log(--,Withdrew %VAR%Y minutes from Bank)
  12483.  jump(setleft)
  12484.  Goto (Finale2)
  12485.  
  12486. *Finale2
  12487.  Say(&CR&Minutes Currently Stored in Bank: %var%t)
  12488.  Say(Time Currently Left: /:LEFT/)
  12489.  Goto (more22)
  12490.  
  12491. *TooLarge12
  12492.  Say(Hey! You don't have %RESP% minutes left!)
  12493.  Goto (Deposit2)
  12494.  
  12495. *TooLarge2
  12496.  Say(Hey! You don't have %RESP% minutes stored in the bank!)
  12497.  Goto (Withdraw2)
  12498.  
  12499. *OverMax2
  12500.  Say (Sorry! You are only allowed to store %var%m minutes.)
  12501.  Goto (Deposit2)
  12502.  
  12503. *Quit2
  12504.  Say (Thank you for using %BBS% Time Bank!)
  12505.  goto (ret0)
  12506.  
  12507. *nonuser
  12508. say(You are not a registered user on this BBS and therefore you cannot hold)
  12509. say(an account here.  If you would like an account, please notify the Sysop)
  12510. goto (ret0)
  12511.  
  12512. *nolim
  12513. setequal(m=32767)
  12514. goto (bak)
  12515.  
  12516. *setleft
  12517. if (%var%x)=(0) then goto (out)
  12518. if (%var%X)=(-1) then goto (out)
  12519. if (%var%x)=(-2) then goto (out)
  12520. SetEqual(/LEFT=%var%x)
  12521. ret
  12522.  
  12523. *out
  12524. display(display\notime)
  12525. setequal(/left=1)
  12526. quitbbs
  12527.  
  12528. *Ops
  12529. AnsiGoto(61,8)
  12530. If(%NV%SELECTED%)=(1) then Say($7$&0&Withdraw Time)
  12531. NotIf(%NV%SELECTED%)=(1) then Say($0$&12&W&7&ithdraw Time)
  12532. AnsiGoto(61,10)
  12533. If(%NV%SELECTED%)=(2) then Say($7$&0&Deposit Time)
  12534. NotIF(%NV%SELECTED%)=(2) then Say($0$&12&D&7&eposit Time)
  12535. AnsiGoto(61,12)
  12536. If(%NV%SELECTED%)=(3) then Say($7$&0&Quit Time Bank)
  12537. NotIf(%NV%SELECTED%)=(3) then Say($0$&12&Q&7&uit Time Bank)
  12538. Ret
  12539.  
  12540. *ClearBox
  12541. Say($0$*)
  12542. AnsiGoto(4,8)
  12543. Spaces(43)
  12544. AnsiGoto(4,9)
  12545. Spaces(43)
  12546. AnsiGoto(4,10)
  12547. Spaces(43)
  12548. AnsiGoto(4,11)
  12549. Spaces(43)
  12550. AnsiGoto(4,12)
  12551. Spaces(43)
  12552. AnsiGoto(4,13)
  12553. Spaces(43)
  12554. AnsiGoto(4,14)
  12555. Spaces(43)
  12556. AnsiGoto(4,15)
  12557. Spaces(43)
  12558. AnsiGoto(4,16)
  12559. Spaces(43)
  12560. Ret
  12561.  
  12562. *WelcScreen
  12563. AnsiGoto (4,8)
  12564. SetEqual(a=Welcome to the %BBS% Time Bank!)
  12565. SetLen(a=43)
  12566. Say(&12&%VAR%A)
  12567. AnsiGoto(4,10)
  12568. Say(&12&Please select the transaction you wish to)
  12569. AnsiGoto(4,11)
  12570. Say(&12&make by using the [UP] and [DOWN] arrow)
  12571. AnsiGoto(4,12)
  12572. Say(&12&keys, or by typing the first letter of the)
  12573. AnsiGoto(4,13)
  12574. Say(&12&type of transaction. Please make your)
  12575. AnsiGoto(4,14)
  12576. Say(&12&selection now!)
  12577. AnsiGoto(4,16)
  12578. Say(&12&You have %var%t minutes in the bank.)
  12579. AnsiGoto(4,20)
  12580. Ret
  12581.  
  12582. *OlHelp
  12583. SetNv(AtPrompt=Yes)
  12584. SetNv(Helpoption=107)
  12585. LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption))
  12586. Ret
  12587.  
  12588. *ret0
  12589. if (%nv%wipe%)=() then return
  12590. setnv(wipe=)
  12591. setnv(wipmode=1)
  12592. return
  12593. ABANDCTL,if (%nv%wipmode%)=(1) then goto (wip)
  12594. setequal(d=%areaname%)
  12595. selarea(/:lastmsg/)
  12596. if (%areaname%)=(%var%d) then if (/:lastmsg/)=(1) then goto (already)
  12597. say(&CR&&11&%var%d &2&Conference abandoned!&CR&)
  12598. enter
  12599. setequal(/resp=1)
  12600. loadmem(control\macros\chg.ctl,goto (sela))
  12601. *already
  12602. say(&CR&&12&You are already in the main conference &11&(%areaname%)&CR&)
  12603. enter
  12604. return
  12605.  
  12606. *wip
  12607. setnv(norefresh=1)
  12608. if (/:lastmsg/)=(1) then goto (awip)
  12609. selarea(/:lastmsg/)
  12610. setequal(c=13~%areaname% Conference Abandoned!~Conf. Abandoned~1~)
  12611. jump (okbox0)
  12612. setequal(/resp=1)
  12613. setequal(d=1)
  12614. loadmem(control\macros\wipchg.ctl,goto(ga0))
  12615. *awip
  12616. setequal(c=13~You are already in the main conference~Cannot Abandon~1~)
  12617. jump (okbox0)
  12618. return
  12619.  
  12620.  
  12621. *okbox0
  12622. Jump (wipc)
  12623. comlineinput(180,l)
  12624. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  12625. if (%resp%)=() then goto (okbox)
  12626. ret
  12627.  
  12628. *GCHAR
  12629. COMPRINT(%NV%TEXT%)
  12630. SETEQUAL(A=0)
  12631. DO
  12632. COMKEY
  12633. ASCII
  12634. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  12635. INC(A)
  12636. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  12637. IF(%ARESP%)=(&B) THEN RET
  12638. IF(&A)>(50) THEN RET
  12639. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  12640. DELAY18TH(2)
  12641. LOOP
  12642. *WIPC
  12643. LOCALKEY(1)
  12644. IFNOTTRUE(GOTO(NOLKEY))
  12645. SYSKEYCHECK
  12646. SETEQUAL(/RESP=)
  12647. SETEQUAL(/RESP=)
  12648. *NOLKEY
  12649. CCARRIER
  12650. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  12651. CHECKSUM(%VAR%C)
  12652. SETEQUAL(B=6)
  12653. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  12654. SETNV(PBACK=)
  12655. JUMP(GCHAR)
  12656. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  12657. setequal(c=%aresp%)
  12658. SETEQUAL(/IBUFF=%NV%PBACK%)
  12659. LEN(%NV%PBACK%)
  12660. SETEQUAL(/IBUFF0=%ARESP%)
  12661. SETEQUAL(/ARESP=%VAR%C)
  12662. RET
  12663. *NOC0
  12664. log(<<,Carrier lost.)
  12665. quitbbs
  12666. MSEARCHCTL *search
  12667. loadsub(control\exitwip.ctl)
  12668. setequal(/nvsnsearch=0)
  12669. Display(display\SEARCH)
  12670. lowmsg(/:lastmsg/)
  12671. setequal(n=%ARESP%)
  12672. Say(&3&Which &11&search&3& option would you like?&12&: &15&*)
  12673. *askagain
  12674. MenuKey
  12675. BigNiceSay(n:new,f:from,t:to,s:description,m:message text,q:quit,h:help)
  12676. BigIf (n:new,f:from,t:toname,s:desc,m:text,h:help3)
  12677. if (%RESP%)=(Q) then goto (ret0)
  12678. flushout
  12679. goto (askagain)
  12680. *help3
  12681. display(display\help\sear,/:SEC/)
  12682. goto (search)
  12683.  
  12684. *from
  12685. clearmem
  12686. menuask (&CR&&3&Please enter the name of the person to search for&12&: &15&*)
  12687. setequal(p=%RESP%)
  12688. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  12689. say(&11&&CR&Searching...|)
  12690. seekfrom(/:LASTMSG/,%var%p,%RESP%)
  12691. say(&CR&)
  12692. log(--,Msg From Search for %var%p)
  12693. zap(seeking.%NODE%,2)
  12694. appendto(seeking.%NODE%,%var%p)
  12695. eline(20)
  12696. if (%ARESP%)=(ERROR) then goto (ret0)
  12697. setequal(/nvsnsearch=1)
  12698. setequal(/nvMsgReadType=20)
  12699. setequal(u=0)
  12700. goto (ret0)
  12701.  
  12702. *new
  12703. clearmem
  12704. setequal(u=0)
  12705. lowmsg(/:lastmsg/)
  12706. setequal(n=%ARESP%)
  12707. menuask (&CR&&3&Search for messages older than?&11&(Date)&12&: &15&*)
  12708. if (%RESP%)=() then setequal(/Resp=/:last/)
  12709. dateok(%RESP%)
  12710. ifnottrue(goto (ret0))
  12711. setequal(p=%RESP%)
  12712. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  12713. say(&11&&CR&Searching...|)
  12714. seeknew(/:LASTMSG/,%var%p,%RESP%)
  12715. log(--,Msg New Search for %var%p)
  12716. zap(seeking.%NODE%,5)
  12717. appendto(seeking.%NODE%,%var%p)
  12718. eline(20)
  12719. if (%ARESP%)=(ERROR) then goto (ret0)
  12720. setequal(/nvsnsearch=1)
  12721. setequal(/nvMsgReadType=20)
  12722. goto (ret0)
  12723.  
  12724. *toname
  12725. clearmem
  12726. menuask (&CR&&3&Please enter the name of the person to search for&12&: &15&*)
  12727. setequal(p=%RESP%)
  12728. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  12729. say(&11&&CR&Searching...|)
  12730. seekto(/:LASTMSG/,%var%p,%RESP%)
  12731. log(--,Msg To Search for %var%p)
  12732. zap(seeking.%NODE%,1)
  12733. appendto(seeking.%NODE%,%var%p)
  12734. eline(20)
  12735. if (%ARESP%)=(ERROR) then goto (ret0)
  12736. setequal(/nvMsgReadType=20)
  12737. setequal(/nvsnsearch=1)
  12738. setequal(u=0)
  12739. goto (ret0)
  12740.  
  12741. *desc
  12742. say(&3&)
  12743. clearmem
  12744. menuask (Please enter the description you want to search for&12&: &15&*)
  12745. setequal(p=%RESP%)
  12746. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  12747. say(&CR&&11&Searching...|)
  12748. seekdesc(/:LASTMSG/,%var%p,%RESP%)
  12749. log(--,Msg Desc Search for %var%p)
  12750. zap(seeking.%NODE%,3)
  12751. appendto(seeking.%NODE%,%var%p)
  12752. eline(20)
  12753. if (%ARESP%)=(ERROR) then goto (ret0)
  12754. setequal(/nvMsgReadType=20)
  12755. setequal(/nvsnsearch=1)
  12756. setequal(u=0)
  12757. goto (ret0)
  12758.  
  12759. *text
  12760. clearmem
  12761. menuask (&CR&&3&Please enter the text you want to search for&12&: &15&*)
  12762. setequal(p=%RESP%)
  12763. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  12764. say(&CR&&11&Searching...|)
  12765. seektext(/:LASTMSG/,%var%p,%RESP%)
  12766. log(--,Msg Txt Search for %var%p)
  12767. zap(seeking.%NODE%,4)
  12768. appendto(seeking.%NODE%,%var%p)
  12769. eline(20)
  12770. if (%ARESP%)=(ERROR) then goto (ret0)
  12771. setequal(/nvMsgReadType=20)
  12772. setequal(/nvsnsearch=1)
  12773. setequal(u=0)
  12774. goto (ret0)
  12775.  
  12776. *ret0
  12777. if (%nv%wipe%)=() then return
  12778. setnv(wipe=)
  12779. setnv(wipmode=1)
  12780. Return
  12781. SCANMCTL    loadsub(control\exitwip.ctl)
  12782. himsg(/:LASTMSG/)
  12783. setequal(f=%ARESP%)
  12784. lowmsg(/:LASTMSG/)
  12785. setequal(y=%ARESP%)
  12786. setequal(a=2)
  12787. resetpause
  12788. SetEqual(/nvu=%VAR%U)
  12789.  
  12790. *scanm
  12791. Say(&CR&&15&Scan Message Headers in (&12&F&15&)orward or (&12&R&15&)everse Direction? &14&*)
  12792. MenuKey(%CRON%)
  12793. BigNiceSay(f:forward,r:reverse)
  12794. BigIf(f:forw,r:rev)
  12795. If(%RESP%)=(<CR>) then goto (ret0)
  12796. Goto(inv)
  12797.  
  12798. *Scan2
  12799. Say(&CR&&15&Start at what message (*)
  12800. If(&u)=(-1) then Say(&12&%var%f&15&-&12&%var%y&15&)*)
  12801. If(&u)=(1) then Say(&12&%var%y&15&-&12&%var%f&15&)*)
  12802. Say(? &14&*)
  12803. CMenuAsk(%CRON%*)
  12804. If(%RESP%)=(<CR>) then Goto(MoreScan)
  12805. Number(%RESP%)
  12806. IfNotTrue(goto(invnum))
  12807. ;if (%resp%)<(%var%y) then setequal(/resp=%var%y)
  12808. ;if (%resp%)>(%var%f) then setequal(/resp=%var%f)
  12809. If(&u)=(-1) then
  12810.   If(%RESP%)>(&y) then setequal(/resp=%var%y)
  12811.   If(%RESP%)<(&f) then setequal(/resp=%var%f)
  12812.  endif
  12813. If(&u)=(1) then
  12814.   If(%RESP%)>(&f) then setequal(/resp=%var%f)
  12815.   If(%RESP%)<(&y) then setequal(/resp=%var%y)
  12816.  endif
  12817. SetEqual(y=%RESP%)
  12818. *MoreScan
  12819. clearscr
  12820. findms(%var%y)
  12821. setequal(y=%aresp%)
  12822. say(&14&Scanning Message Headers in area %AREANAME%:&7&&CR&)
  12823.  
  12824. *BEGIN
  12825. DO
  12826. GETMAILREC(%VAR%Y,,1,t,sh)
  12827. IF (%MSGNUMBER%)=(0) THEN GOTO(LP)
  12828. NOTIF(%ARESP%)=(Yes) THEN GOTO(LP)
  12829. SETEQUAL(C=%MSGDESC%)
  12830. SetEqual(/nve=%VAR%E)
  12831. MenuEqual(e=%NAME%)
  12832. GET(&C,1,23)
  12833. SAY(%MSGNUMBER%; %MSGSNTD%;&11& %MSGFROM% &7&to &15&%MSGTO%;&7& Re: %ARESP%)
  12834. *INCIT
  12835. SetEqual(e=%NV%E)
  12836. SetEqual(/nve=)
  12837. INC(A)
  12838. *LP
  12839. IF (&U)=(1) THEN IF (%MSGNUMBER%)=>(&F) THEN GOTO(BACK)
  12840. IF (&U)=(-1) THEN IF (%MSGNUMBER%)<=(&F) THEN GOTO(BACK)
  12841. ADDVAR(%VAR%Y+%VAR%U=y)
  12842. IF (&A)=(/:SCREENLEN/) THEN GOTO(PAUSE)
  12843. LOOP
  12844.  
  12845. *pause
  12846. setequal(a=1)
  12847. pauseprompt
  12848. if (%ARESP%)=(STOP) then goto (back)
  12849. goto (begin)
  12850.  
  12851.  
  12852. *back
  12853. linefeed(1)
  12854. enter
  12855. goto (ret0)
  12856.  
  12857. *forw
  12858. SetEqual(u=1)
  12859. HiMsg(/:LASTMSG/)
  12860. SetEqual(f=%ARESP%)
  12861. LowMsg(/:LASTMSG/)
  12862. SetEqual(y=%ARESP%)
  12863. Goto(scan2)
  12864.  
  12865. *rev
  12866. SetEqual(u=-1)
  12867. HiMsg(/:LASTMSG/)
  12868. SetEqual(y=%ARESP%)
  12869. LowMsg(/:LASTMSG/)
  12870. SetEqual(f=%ARESP%)
  12871. Goto(scan2)
  12872.  
  12873. *inv
  12874. if (&s)=(10) then goto (abb)
  12875. say(&CR&&12&Invalid selection! Please try again...)
  12876. secpause(1)
  12877. Goto(scanm)
  12878.  
  12879. *invnum
  12880. Say(&CR&&12&That is an invalid message number! Please try again...)
  12881. secpause(1)
  12882. Goto(scan2)
  12883.  
  12884. *ret0
  12885. if (%nv%wipe%)=() then return
  12886. setnv(wipe=)
  12887. setnv(wipmode=1)
  12888. return
  12889. EXPERTCTLif (%graphics%)=(RIP) then clearscr
  12890. If (/:EXPERT/)=(Y) Then Goto (exon)
  12891. if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl)
  12892. Say(&14&&CR&Menus will not be displayed (Expert Mode On)&CR&)
  12893. ;if (%graphics%)=(WIP) then setequal(/graphics=ANSI)
  12894. SetEqual(/EXPERT=Y)
  12895. Enter
  12896. Return
  12897.    *exon
  12898. Say(&14&&CR&Menus will now be displayed (Expert Mode Off)&CR&)
  12899. SetEqual(/EXPERT=N)
  12900. Enter
  12901. if (%graphics%)=(WIP) then setnv(wipmode=1) ;for some reason, this was
  12902.                                             ;commented out.
  12903. Return
  12904. READMWIPCTL╣jump (gethilow)
  12905. loadsub(control\macros\msgstrt.ctl)
  12906.  
  12907. Jump (gethilow)
  12908.  
  12909. setequal(i=%nv%ctext%)
  12910. setnv(i=%var%i)
  12911. setnv(wipfS=)
  12912.  
  12913. *AGMail
  12914. setequal(/resp=)
  12915. writeln(at agmail)
  12916. getmail(%var%i,,%var%w)
  12917. jump (setk)
  12918. setequal(s=0)
  12919. ;if (%MsgNumber%)=(0) then goto (next)
  12920. setequal(z=10)
  12921. *banyway
  12922. if (%nv%wipmode%)<>(1) then
  12923.   setnv(wipmode=1)
  12924.   setnv(wipfS=)
  12925. endif
  12926. clearscr
  12927. if (%nv%wipfs%)<>() then goto (passShow)
  12928. setnv(NoInfo=1)
  12929. if (%sec%)<(100) then loadsub(control\ewipscr.ctl,setnv(wipf=msg))
  12930. if (%SEC%)=>(100) then loadsub(control\ewipscr.ctl,setnv(wipf=msg-s))
  12931. arrayread(%pbtemp%msgstmp.%node%)
  12932. setnv(wipfS=1)
  12933.  
  12934. *passShow
  12935. loadsub(control\macros\wiphdr.ctl)
  12936. if (%nv%attf%)=(1) then jump (attbutton)
  12937. if (%nv%attf%)=() then jump (attbclear)
  12938.  
  12939. if (%nv%killed%)=(YES) then jump (unsetkbutton)
  12940. if (%nv%killed%)<>(YES) then jump (setkbutton)
  12941. setequal(c=14~msgtxt~200~12~)
  12942. jump (wipc)
  12943. writeln(Text of Message Follows: ------------------------------------------------)
  12944. setnv(maxl=0)
  12945. *dotext
  12946. setequal(y=%nv%maxl%)
  12947. setequal(f=0)
  12948. *stl1
  12949. inc(y)
  12950. inc(f)
  12951. showline(%var%y)
  12952. writeln(%aresp%)
  12953. if (%aresp%)<>() then setequal(c=07~msgtxt~%aresp%~)
  12954. if (%aresp%)=() then setequal(c=07~msgtxt~ ~)
  12955. jump (wipc)
  12956. if (%var%f)<(13) then if (%var%y)<(%maxline%) then goto (stl1)
  12957. setnv(maxl=%var%y)
  12958.  
  12959. loadsub(control\macros\wiphdr.ctl,goto(initbox))
  12960. *prompt0
  12961. writeln(Waiting for response from user.)
  12962. setequal(c=0A~)
  12963. jump (wipc)
  12964. setequal(y=10)
  12965. jump (wipask)
  12966. if (%aresp%)<>(24) then goto (gotaresp)
  12967. setequal(c=0A~)
  12968. jump (wipc)
  12969. setequal(y=20)
  12970. jump (wipc)
  12971. if (%aresp%)<>(24) then goto (gotaresp)
  12972. setequal(c=0A~)
  12973. jump (wipc)
  12974. setequal(y=155)
  12975. jump (wipask)
  12976. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  12977. *gotaresp
  12978. writeln(User response = "%resp%")
  12979. notif(%NV%KILLED%)=(YES) then bigif (keep:flagasnew,forward:forw,reply:reply,prev:previous,kill:kill,next:next,help:help2,Exit:inbox,compose:compose)
  12980. if(%NV%KILLED%)=(YES) then bigif (keep:flagasnew,forward:forw,reply:reply,prev:previous,kill:unkill,next:next,help:help2,Exit:inbox,compose:compose)
  12981. if (%nv%attf%)=(1) then bigif (Download:downatt)
  12982. if (%sec%)=>(100) then bigif(UserFile:userrec)
  12983. setequal(b=%resp%)
  12984. find(&b,,)
  12985. if (%aresp%)<=(1) then goto (notlistbox)
  12986. addvar(%aresp%+1=c)
  12987. get(&b,%var%c,1000)
  12988. if (%aresp%)<>(-1) then goto (prompt0)
  12989. if (%nv%maxl%)=>(%maxline%) then goto (endm)
  12990. goto(dotext)
  12991.  
  12992. *notlistbox
  12993. *reading
  12994. goto (prompt0)
  12995.  
  12996. *flagasnew
  12997. ;MsgSetBit(%MSGNUMBER%,10,0)
  12998. Goto(prompt0)
  12999.  
  13000. *mark
  13001. loadsub(control\macros\markmess.ctl)
  13002. SetEqual(/nvstatus=REPEAT)
  13003.  
  13004. *help2
  13005. findfirst(display\help\readn*.wip)
  13006. if (%aresp%)=(0) then goto (nowiphelp)
  13007. if (%aresp%)=() then goto (nowiphelp)
  13008. display(display\help\readn,/:SEC/)
  13009. goto (prompt0)
  13010. *nowiphelp
  13011. loadsub(control\exitwip.ctl)
  13012. display(display\help\readn,/:sec/)
  13013. goto(prompt0)
  13014.  
  13015. *downatt
  13016. zap(%pbtemp%varr.%NODE%,%var%R)
  13017. linefeed(1)
  13018. loadsub(control\exitwip.ctl)
  13019. LoadSub(control\macros\savevars.ctl)
  13020. loadsub(control\DOWNATT.CTL)
  13021. Loadsub(control\macros\restvars.ctl)
  13022. goto (aGMail)
  13023.  
  13024. *forw
  13025. loadsub(control\macros\messforw.ctl)
  13026. if (&g)=(1) then goto (inv2)
  13027. ;goto (repeat)
  13028. Goto(agmail)
  13029.  
  13030. *marked   ; appears to be a useless label
  13031. setequal(w=1)
  13032. setequal(/nvreadtype=1)
  13033. setequal(u=0)
  13034. goto (next)
  13035.  
  13036. *userrec
  13037.  EnufSec(100)
  13038.  IfNotTrue(Goto(inv2))
  13039.  loadsub(control\macros\userrwip.ctl)
  13040.  Goto(AGMAil)
  13041.  
  13042. *rev
  13043. if (&y)=(0) then goto (inv2)
  13044. setequal(f=%nv%f0%)
  13045. setequal(y=%var%f)
  13046. setequal(w=-1)
  13047. if (&y)=(0) then goto (inv2)
  13048. goto (repeat)
  13049.  
  13050. *Qdisp
  13051. SetEqual(/nvstatus=INBOX)
  13052. Return
  13053.  
  13054. *Inv2
  13055. ;SetEquaL(/NVSTATUS=INV2)
  13056. ;Return
  13057. if (&s)=(10) then goto (abb)
  13058. say(&CR&&CR&&12&Invalid selection! Please try again...&CR&)
  13059. secpause(1)
  13060. flushout
  13061. Goto(Reading)
  13062.  
  13063. *kill
  13064. SetEqual(/nvme=%VAR%Y)
  13065. SetEqual(y=%MSGNUMBER%)
  13066. loadsub(control\macros\killmess.ctl)
  13067. SetEqual(y=%NV%ME%)
  13068. SetEqual(/nvme=)
  13069. SetEqual(i=%NV%I%)
  13070. ;NotIf(&g)=(0) then SetEqual(^%VAR%i=DELETED)
  13071. Goto(Inbox)
  13072.  
  13073. *Unkill
  13074. LoadSub(Control\macros\unkill.ctl)
  13075. Goto(prompt0)
  13076.  
  13077.  
  13078. *Inbox
  13079. SetEqual(/nvstatus=INBOX)
  13080. Return
  13081.  
  13082. *next
  13083. writeln(got to next)
  13084. SetEqual(i=%NV%I%)
  13085. Inc(i)
  13086. If(&i)>(%NV%F0%) then Goto(lastmsg)
  13087. setnv(i=%var%i)
  13088. writeln(going back to agmail)
  13089. goto (agmail)
  13090.  
  13091. ;SetEqual(/nvselected=%VAR%I)
  13092. ;SetEqual(/nvi=%VAR%I)
  13093. ;Goto(MovingDown)
  13094. ;;Goto(SetVars)
  13095.  
  13096. *previous
  13097. SetEqual(i=%NV%I%)
  13098. AddVar(%VAR%I+-1=i)
  13099. If(&i)<(%nv%n%) then Goto(firstmsg)
  13100. SetEqual(/nvselected=%VAR%I)
  13101. SetEqual(/nvi=%VAR%I)
  13102. Goto(agmail)
  13103.  
  13104. *SetVars
  13105. ;Say(BEFORE I=%VAR%I)
  13106. ;Say(AFTER I=%VAR%I)
  13107. ;Say(:1=^:1^  :2=^:2^)
  13108. getmail(%var%i,,%var%w)
  13109. ;Say(ARESP from the GetMail(%VAR%I,,%VAR%W)=%ARESP%)
  13110. ;Enter
  13111. Say($0$*)
  13112. Goto(AgMail)
  13113.  
  13114. *getHiLow
  13115. himsg
  13116. setequal(f=%ARESP%)
  13117. setnv(f0=%aresp%)
  13118. lowmsg
  13119. setequal(n=%ARESP%)
  13120. setnv(n=%aresp%)
  13121. ret
  13122.  
  13123. *firstmsg
  13124. Say(&CR&&12&This is the first message in your INBOX&CR&)
  13125. SecPause(1)
  13126. Inc(i)
  13127. ;SetEqual(i=%NV%I%)
  13128. SetEqual(/nvselected=%VAR%I)
  13129. SetEqual(/nvstart=%VAR%I)
  13130. SetEqual(/nvi=%VAR%I)
  13131.  
  13132. Goto(Inbox)
  13133.  
  13134. ;Goto(SetVars)
  13135.  
  13136. *lastmsg
  13137. Say(&CR&&12&This is the last message in your INBOX&CR&)
  13138. SecPause(1)
  13139. AddVar(%VAR%I+-1=i)
  13140. SetEqual(/nvselected=%VAR%I)
  13141. SetEqual(/nvi=%VAR%I)
  13142.  
  13143. return
  13144.  
  13145. ;Goto(SetVars)
  13146.  
  13147. *MovingUp
  13148.   SetEqual(/nvtemp=%NV%SELECTED%)
  13149.   NotIf(%NV%SELECTED%)>=(%NV%START%) then Goto(QuickFix)
  13150.   SetEqual(/nvselected=%VAR%I)
  13151.   SetEqual(/nvscreen=REFRESH)  
  13152.   SetEqual(i=%NV%SELECTED%)
  13153.   AddVar(%VAR%I+3=q)
  13154.   setequal(y=%var%i)
  13155.   Goto(SetVars)
  13156.  
  13157. *QuickFix
  13158.    If(&i)<(1) then 
  13159.       SetEqual(i=%NV%TOTMAX%)
  13160.       SetEqual(/nvselected=%VAR%I)
  13161.       Inc(i)
  13162.       AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  13163.       Inc(i)
  13164.       SetEqual(/nvstart=%VAR%I)
  13165.       SetEqual(/nvscreen=NORMAL)
  13166.       Goto(SetVars)
  13167.     endif
  13168.    SetEqual(/nvstart=%VAR%I)
  13169.    SetEqual(/nvscreen=NORMAL)
  13170.    SetEqual(/nvselected=%VAR%I)
  13171.    Goto(SetVars)
  13172.  
  13173. *MovingDown
  13174.   SetEqual(/nvtemp=%NV%SELECTED%)
  13175.  
  13176. ;  NotIf(&i)<=(%NV%MAX%) then
  13177. ;    SetEqual(/nvselected=%VAR%I)
  13178. ;    AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  13179. ;    Inc(i)
  13180. ;    Inc(i)
  13181. ;    SetEqual(/nvstart=%VAR%I)
  13182. ;    SetEqual(i=%NV%SELECTED%)
  13183. ;    Goto(SetVars)
  13184. ;   Endif
  13185.  
  13186.   SetEqual(/nvselected=%VAR%I)
  13187.   SetEqual(/nvscreen=REFRESH)  
  13188.   SetEqual(i=%NV%SELECTED%)
  13189.   AddVar(%VAR%I+3=q)
  13190.   setequal(y=%var%i)
  13191.   Goto(SetVars)
  13192.  
  13193. *reply
  13194. loadsub(control\exitwip.ctl)
  13195. loadsub(control\macros\reply.ctl)
  13196. SetEqual(i=%NV%SELECTED%)
  13197. SetEqual(/nvnum=)
  13198. goto (setvars)
  13199.  
  13200. *compose
  13201. LoadSub(control\macros\savevars.ctl)
  13202. loadsub(control\exitwip.ctl)
  13203. Loadsub(control\macros\enter.ctl)
  13204. LoadSub(control\macros\restvars.ctl)
  13205. Goto (agmail)
  13206.  
  13207. *GCHAR
  13208. COMPRINT(%NV%TEXT%)
  13209. SETEQUAL(A=0)
  13210. DO
  13211. COMKEY
  13212. ASCII
  13213. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  13214. INC(A)
  13215. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  13216. IF(%ARESP%)=(&B) THEN RET
  13217. IF(&A)>(45) THEN RET
  13218. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  13219. DELAY18TH(2)
  13220. LOOP
  13221. *WIPC
  13222. LOCALKEY(1)
  13223. IFNOTTRUE(GOTO(NOLKEY))
  13224. SYSKEYCHECK
  13225. SETEQUAL(/RESP=)
  13226. SETEQUAL(/RESP=)
  13227. *NOLKEY
  13228. CCARRIER
  13229. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  13230. CHECKSUM(%VAR%C)
  13231. SETEQUAL(B=6)
  13232. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  13233. SETNV(PBACK=)
  13234. JUMP(GCHAR)
  13235. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  13236. SETEQUAL(/IBUFF=%NV%PBACK%)
  13237. LEN(%NV%PBACK%)
  13238. SETEQUAL(/IBUFF0=%ARESP%)
  13239. RET
  13240. *NOC0
  13241. log(<<,Carrier lost.)
  13242. quitbbs
  13243. *attbutton
  13244. setequal(c=07~Download~Download %MSGATTNAME%~)
  13245. goto (wipc)
  13246. *attbclear
  13247. setequal(c=15~Download~)
  13248. goto (wipc)
  13249. *setkbutton
  13250. setequal(c=07~kill~Kill~)
  13251. goto (wipc)
  13252. *unsetkbutton
  13253. setequal(c=07~kill~UnKill~)
  13254. goto (wipc)
  13255. *setk
  13256. SetEqual(/nvkilled=NO)
  13257. if(%ARESP%)=(DELETED) then SetEqual(/nvkilled=YES)
  13258. ret
  13259.  
  13260. *endm
  13261. setequal(c=13~There is no more message text.~No More Text~1~)
  13262. jump (okbox0)
  13263. setequal(c=0A~)
  13264. jump (wipc)
  13265. goto (prompt0)
  13266.  
  13267.  
  13268. *wipAsk
  13269. loadsub(control\wipask.ctl)
  13270. ret
  13271.  
  13272. *okbox0
  13273. Jump (wipc)
  13274. comlineinput(180,l)
  13275. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  13276. if (%resp%)=() then goto (okbox)
  13277. ret
  13278. BADSELCTLzif (%nv%nobad%)=(1) then goto (nobad)
  13279. if (%nv%wipmode%)=(1) then goto (wip)
  13280. Say(&12&&CR&Invalid selection!  Please try again...*)
  13281. SetEqual(/nvqueue=)
  13282. if (/:EXPERT/)=(N) then SecPause (1)
  13283. say()
  13284. FlushOut
  13285. Return
  13286. *nobad
  13287. setnv(nobad=0)
  13288. return
  13289.  
  13290. *wip
  13291. writeln()
  13292. loadsub(control\wipsound.ctl,setnv(file=notncomp.wav))
  13293. writeln(Invalid selection!  Please try again...)
  13294. setequal(c=13~Invalid selection!  Please try again...~Invalid Selection~1~)
  13295. jump (okbox0)
  13296. flushout
  13297. setnv(norefresh=1)
  13298. writeln()
  13299. return
  13300.  
  13301.  
  13302. *GCHAR
  13303. COMPRINT(%NV%TEXT%)
  13304. SETEQUAL(A=0)
  13305. DO
  13306. COMKEY
  13307. ASCII
  13308. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  13309. INC(A)
  13310. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  13311. IF(%ARESP%)=(&B) THEN RET
  13312. IF(&A)>(200) THEN RET
  13313. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  13314. DELAY18TH(2)
  13315. LOOP
  13316. *WIPC
  13317. LOCALKEY(1)
  13318. IFNOTTRUE(GOTO(NOLKEY))
  13319. SYSKEYCHECK
  13320. SETEQUAL(/RESP=)
  13321. SETEQUAL(/RESP=)
  13322. *NOLKEY
  13323. CCARRIER
  13324. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  13325. CHECKSUM(%VAR%C)
  13326. SETEQUAL(B=6)
  13327. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  13328. SETNV(PBACK=)
  13329. JUMP(GCHAR)
  13330. if(%ARESP%)<>(6) THEN FLUSHOUT
  13331. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  13332. setequal(c=%aresp%)
  13333. SETEQUAL(/IBUFF=%NV%PBACK%)
  13334. LEN(%NV%PBACK%)
  13335. SETEQUAL(/IBUFF0=%ARESP%)
  13336. SETEQUAL(/ARESP=%VAR%C)
  13337. RET
  13338. *NOC0
  13339. log(<<,Carrier lost.)
  13340. quitbbs
  13341.  
  13342.  
  13343. *okbox0
  13344. Jump (wipc)
  13345. comlineinput(180,l)
  13346. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  13347. if (%resp%)=() then goto (okbox)
  13348. ret
  13349. MSGSTRTCTL¼
  13350. setnv(d=)
  13351. setnv(flines=0)
  13352.  
  13353. setnv(carea=0)
  13354. setnv(searchf=searchf)
  13355. inpclose
  13356.  
  13357. setnv(CurFMode=1)
  13358.  
  13359. *tt0
  13360.  
  13361.  
  13362.  
  13363.  
  13364.  
  13365.  
  13366. *thetop
  13367.  
  13368.  
  13369. *initBox
  13370.  
  13371. setnv(NoInfo=1)
  13372. loadsub(control\ewipscr.ctl,setnv(wipf=startn))
  13373.  
  13374. setequal(c=07~Bar~Low Message #: %nv%n%, High Message #: %nv%f0%~)
  13375. jump (wipc)
  13376. setequal(c=0A~)
  13377. jump (wipc)
  13378.  
  13379. *GetResp0
  13380. if (%nv%wiprestreq%)=(1) then goto (thetop)
  13381. setequal(c=0A~)
  13382. jump (wipc)
  13383.  
  13384. goto (getInput)
  13385. *bgi
  13386. writeln(Response from user: "%resp%")
  13387. if (%nv%wiprestreq%)=(1) then goto (thetop)
  13388. if (%resp%)=(Exit) then goto (ret4)
  13389. if (%resp%)=(quit) then goto (ret4)
  13390. setequal(b=%resp%)
  13391. find(&b,,)
  13392. if (%aresp%)<=(1) then goto (NotListC)
  13393. addvar(%aresp%+-1=e)
  13394. addvar(%aresp%+1=f)
  13395. get(&b,1,%var%e)
  13396. setnv(wipc=%aresp%)
  13397. get(&b,%var%f,1000)
  13398. setequal(b=%aresp%)
  13399. ;if (%var%b)=(-1) then goto (more)
  13400. goto (getresp0)
  13401. *NotListC
  13402. find(&b,;)
  13403. if (%aresp%)<=(1) then goto (NoCmnd)
  13404. addvar(%aresp%+-1=e)
  13405. addvar(%aresp%+1=f)
  13406. get(&b,1,%var%e)
  13407. SetNv(WipC=%aresp%)
  13408. setnv(cText=)
  13409. len(%var%b)
  13410. if (%var%f)<=(%aresp%) then
  13411. upcase(b)
  13412. get(&b,%var%f,1000)
  13413. SetNv(Ctext=%aresp%)
  13414. endif
  13415. if (%nv%wipc%)=(msgnumber) then return
  13416. *NoCmnd
  13417. setnv(wtxt=)
  13418. goto (getResp0)
  13419.  
  13420.  
  13421. *listfa
  13422. seek(%pbtemp%wiplist.%node%)
  13423. ifnottrue(goto(donef))
  13424.  
  13425. inpopen(%pbtemp%wiplist.%node%,4)
  13426.  
  13427. setnv(d=0)
  13428. setnv(m=0)
  13429. setnv(e=0)
  13430. setnv(f=0)
  13431.  
  13432. *more
  13433. setequal(u=0)
  13434. setequal(d=%nv%d%)
  13435. setequal(m=%nv%m%)
  13436. setequal(e=%nv%e%)
  13437. setequal(f=%nv%f%)
  13438. fendif(donea)
  13439.  
  13440. *stLoop
  13441.   inc(u)
  13442.   inc(d)
  13443.   inpread
  13444.   writeln(%aresp%)
  13445.   if (%aresp%)=() then setequal(/aresp= )
  13446.   setequal(c=07~listbox~%aresp%~)
  13447.   jump (wipc)
  13448.   if (%var%u)>(%nv%high%) then goto (donef)
  13449. fendif(donea)
  13450. goto(stloop)
  13451.  
  13452. *done
  13453. inpclose
  13454.  
  13455. cnvtk(%var%e)
  13456. setequal(c=07~listbox~ -- End of File Listing --~)
  13457. jump (wipc)
  13458. goto (donef)
  13459.  
  13460. *none
  13461. setequal(c=07~listbox~There are no files in this area.~)
  13462. jump (wipc)
  13463. goto (donef)
  13464.  
  13465.  
  13466.  
  13467. *NoMore
  13468.  if (%nv%high%)=() then goto (ga0)
  13469. ; writeln(No more matches to the text you specified could be found.)
  13470. ; setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  13471. ; jump (okbox0)
  13472.  goto (donef)
  13473. ; goto (getresp0)
  13474.  
  13475. *GCHAR
  13476. COMPRINT(%NV%TEXT%)
  13477. SETEQUAL(A=0)
  13478. DO
  13479. COMKEY
  13480. ASCII
  13481. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  13482. INC(A)
  13483. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  13484. IF(%ARESP%)=(&B) THEN RET
  13485. IF(&A)>(50) THEN RET
  13486. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  13487. DELAY18TH(2)
  13488. LOOP
  13489. *WIPC
  13490. LOCALKEY(1)
  13491. IFNOTTRUE(GOTO(NOLKEY))
  13492. SYSKEYCHECK
  13493. SETEQUAL(/RESP=)
  13494. SETEQUAL(/RESP=)
  13495. *NOLKEY
  13496. CCARRIER
  13497. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  13498. CHECKSUM(%VAR%C)
  13499. SETEQUAL(B=6)
  13500. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  13501. SETNV(PBACK=)
  13502. JUMP(GCHAR)
  13503. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  13504. setequal(c=%aresp%)
  13505. SETEQUAL(/IBUFF=%NV%PBACK%)
  13506. LEN(%NV%PBACK%)
  13507. SETEQUAL(/IBUFF0=%ARESP%)
  13508. SETEQUAL(/ARESP=%VAR%C)
  13509. RET
  13510. *NOC0
  13511. log(<<,Carrier lost.)
  13512. quitbbs
  13513.  
  13514. *getinput
  13515. writeln(Waiting for input from remote user.)
  13516. setequal(y=180)
  13517. writeln(loading wipask.ctl)
  13518. loadsub(control\wipask.ctl)
  13519. writeln(back from wipask.ctl (1))
  13520. if (%aresp%)<>(24) then goto (bgi)
  13521. writeln(loading time warning.)
  13522. loadsub(control\wipask.ctl,goto(twarn))
  13523. setequal(y=60)
  13524. writeln(loading wipask.ctl (2))
  13525. loadsub(control\wipask.ctl)
  13526. writeln(back from wipask.ctl (2))
  13527. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  13528. writeln(going back to bgi)
  13529. goto (bgi)
  13530.  
  13531. *donef
  13532. ;inc(d)
  13533. setnv(d=%var%d)
  13534. setnv(m=%var%m)
  13535. setnv(e=%var%e)
  13536. setnv(f=%var%f)
  13537. write(Updating list box on user's screen ... )
  13538. setequal(c=07~listbox~-1~)
  13539. jump (wipc)
  13540. setequal(c=0F~listbox~Change File Area~1~1~2~)
  13541. jump (wipc)
  13542. setequal(c=0F~RecCount~20~1~0~1~)
  13543. jump (wipc)
  13544. setequal(c=0F~Exit~Exit~1~1~3~)
  13545. jump (wipc)
  13546. setequal(c=0F~Scrl_UP~~1~1~4~)
  13547. jump (wipc)
  13548. setequal(c=0F~Scrl_Dn~~1~1~5~)
  13549. jump (wipc)
  13550. setequal(c=0F~Page_Up~~1~1~6~)
  13551. jump (wipc)
  13552. setequal(c=0F~Page_Dn~~1~1~7~)
  13553. jump (wipc)
  13554. setequal(c=0A~)
  13555. jump (wipc)
  13556. writeln(Done!)
  13557. goto(getresp0)
  13558.  
  13559. *okbox0
  13560. Jump (wipc)
  13561. comlineinput(180,l)
  13562. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  13563. if (%resp%)=() then goto (okbox)
  13564. ret
  13565.  
  13566. *notext
  13567. writeln(No text was specified.  Enter some text to search for and try again...)
  13568. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  13569. jump (okbox0)
  13570. goto (getresp0)
  13571.  
  13572. *doAdd
  13573. loadsub(control\macros\tag-wip.ctl)
  13574. goto(thetop)
  13575.  
  13576. *okbox0
  13577. Jump (wipc)
  13578. *tryr0
  13579. comlineinput(180,l)
  13580. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  13581. if (%resp%)=() then goto (tryr0)
  13582. ret
  13583.  
  13584. *ret4
  13585. setnv(d=)
  13586. inpclose
  13587. return
  13588.  
  13589. *dispscr
  13590. setnv(high=21)
  13591. setnv(NoInfo=1)
  13592. loadsub(control\ewipscr.ctl,setnv(wipf=%nv%searchf%))
  13593. ret
  13594.  
  13595. *dispCurMode
  13596. if (%nv%curfMode%)<>(1) then goto (not1)
  13597. setequal(c=07~status~Now in TAG MODE.  To tag a file, click on the filename you want in the box below:~)
  13598. jump(wipc)
  13599. *not1
  13600. if (%nv%curfmode%)<>(2) then goto (not2)
  13601. setequal(c=07~status~Now in DOWNLOAD MODE.  To download a file, click on the filename you want in the box below:~)
  13602. jump (wipc)
  13603. *not2
  13604. if (%nv%curfmode%)<>(3) then ret
  13605. setequal(c=07~status~Now in VIEW MODE.  To view a file, click on the filename you want to view in the box below:~)
  13606. goto (wipc)
  13607.  
  13608. *tagmode
  13609. setnv(curfmode=1)
  13610. jump (dispcurmode)
  13611. goto (getresp0)
  13612.  
  13613. *downmode
  13614. setnv(curfmode=2)
  13615. jump (dispcurmode)
  13616. goto (getresp0)
  13617.  
  13618. *viewmode
  13619. setnv(curfmode=3)
  13620. jump (dispcurmode)
  13621. goto (getresp0)
  13622.  
  13623. *downloadit
  13624. setnv(filename=%var%d)
  13625. setnv(ctext=%var%d)
  13626. setnv(fromsub=1)
  13627. inpclose
  13628. setnv(flwd=%nv%d%)
  13629. loadsub(control\exitwip.ctl)
  13630. loadsub(control\macros\down.ctl)
  13631. setnv(d=%nv%flwd%)
  13632. setnv(flwd=)
  13633. inpopen(%pbtemp%wiplist.%node%,4)
  13634. inpread(%nv%d%)
  13635. goto (thetop)
  13636. ;goto (InitBox)
  13637.  
  13638. *tagit
  13639. setnv(filename=%var%d)
  13640. setnv(ctext=%var%d)
  13641. setnv(fromsub=1)
  13642. inpclose
  13643. setnv(flwd=%nv%d%)
  13644. loadsub(control\macros\tag-wip.ctl,goto(dotag))
  13645. setnv(d=%nv%flwd%)
  13646. setnv(flwd=)
  13647. inpopen(%pbtemp%wiplist.%node%,4)
  13648. inpread(%nv%d%)
  13649. goto (getresp0)
  13650. ;goto (InitBox)
  13651.  
  13652. *viewit
  13653. setnv(key=%var%d)
  13654. setnv(ctext=%var%d)
  13655. setnv(fromsub=1)
  13656. inpclose
  13657. setnv(flwd=%nv%d%)
  13658. upcase(d)
  13659. find(&d,.TXT)
  13660. if (%aresp%)>(0) then goto (txt)
  13661. find(&d,.ASC)
  13662. if (%aresp%)>(0) then goto (txt)
  13663. loadsub(control\exitwip.ctl)
  13664. setnv(filename=%nv%key%)
  13665. loadsub(control\macros\zview.ctl)
  13666. *bk
  13667. setnv(d=%nv%flwd%)
  13668. setnv(flwd=)
  13669. inpopen(%pbtemp%wiplist.%node%,4)
  13670. inpread(%nv%d%)
  13671. goto (thetop)
  13672. ;goto (InitBox)
  13673.  
  13674. *txt
  13675. loadsub(control\macros\freadwip.ctl)
  13676. goto (bk)
  13677.  
  13678. *ssetup
  13679. setNv(key=%nv%Ctext%)
  13680. setnv(searchf=flist)
  13681.  
  13682. goto (tt0)
  13683.  
  13684.  
  13685. *uparea
  13686. if (%nv%carea%)=>(%maxfarea%) then goto (donef)
  13687. addvar(%nv%carea%+1=a)
  13688. setnv(carea=%var%a)
  13689. selfarea(%var%a)
  13690. enufsec(%filsec%)
  13691. ifnottrue(goto (uparea))
  13692.  
  13693. numb(No)
  13694. setnv(fn=%filpath%files.bbs)
  13695. if (%CD%)=(Yes) then setnv(fn=%CDPATH%%var%a\files.bbs)
  13696. write(Retrieving file listing for area #%var%a...)
  13697. inpclose
  13698. listlog()
  13699. ;zap(%pbtemp%wiplist.%node%)
  13700. appendto(%pbtemp%wiplist.%node%, -- File Area #%var%a: %filname% --)
  13701. lines(%nv%fn%)
  13702. setequal(g=%aresp%)
  13703. addvar(%aresp%+%flines%=c)
  13704. setnv(flines=%var%c)
  13705. listlog(%pbtemp%wiplist.%Node%)
  13706. setequal(k=1)
  13707. fsearch(%nv%fn%,12,15,7,11,3,%nv%key%,%var%k,%var%g)
  13708. listlog()
  13709. writeln(Done!)
  13710. if (%nv%d%)=() then ret
  13711. inpopen(%pbtemp%wiplist.%node%,4)
  13712. inpread(%nv%d%)
  13713. ret
  13714.  
  13715. *donea
  13716. setnv(d=%var%d)
  13717. inpclose
  13718. jump (uparea)
  13719. goto (stloop)
  13720.  
  13721.  
  13722. WIPHDRCTLM    
  13723. setequal(x=0)
  13724. setequal(s=0)
  13725. setequal(c=07~msgnumber~%msgnumber%~)
  13726. jump (wipc)
  13727. setequal(f=%nv%f0%)
  13728. write(Message # %msgnumber% of %var%f  sent on )
  13729. setequal(c=07~varf~%var%f~)
  13730. jump (wipc)
  13731. nicedate(%MSGSNTD%)
  13732. write(%aresp% at )
  13733. setequal(c=07~sentd~%aresp%~)
  13734. jump (wipc)
  13735. nicetime(%MSGSNTT%)
  13736. writeln(%aresp%)
  13737. setequal(c=07~sentt~%aresp%~)
  13738. jump (wipc)
  13739. niceequal(b=%msgfrom%)
  13740. writeln(Sent by: %var%b)
  13741. setequal(c=07~sentb~%var%b~)
  13742. jump (wipc)
  13743. niceequal(b=%msgto%)
  13744. writeln(Addressed to: %var%b)
  13745. setequal(c=07~addrto~%var%b~)
  13746. jump (wipc)
  13747. writeln(Regarding: %msgdesc%)
  13748. setequal(c=07~regarding~%msgdesc%~)
  13749. jump (wipc)
  13750. niceequal(b=%msgpvt%, %msgrcvd%, Read %msgrdtimes% times, %replies%)
  13751. If(%NV%KILLED%)=(YES) then setequal(b=%var%b, DELETED)
  13752. writeln(Status: %var%b)
  13753. setequal(c=07~status~%var%b~)
  13754. jump (wipc)
  13755. setequal(b=None)
  13756. setnv(attf=)
  13757.  
  13758. if (%MSGATTACH%)=(Y) then 
  13759.   setnv(attf=1)
  13760.   setequal(b=)
  13761.   if (%MSGPVT%)=(PRIVATE) then setequal(s=10)
  13762.   setequal(b=* File Attached: %MSGATTNAME% )
  13763.   If(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%ATTEXT%)
  13764.   NotIf(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%STOREDEXT%)
  13765.   setequal(b=%var%b%ARESP% bytes -- Time to download: )
  13766.   TTime(%ARESP%)
  13767.   setequal(b=%var%b%ARESP%)
  13768.  endif
  13769. setequal(c=07~attachinfo~%var%b~)
  13770. jump (wipc)
  13771.  
  13772. return
  13773.  
  13774.  
  13775. *GCHAR
  13776. COMPRINT(%NV%TEXT%)
  13777. SETEQUAL(A=0)
  13778. DO
  13779. COMKEY
  13780. ASCII
  13781. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  13782. INC(A)
  13783. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  13784. IF(%ARESP%)=(&B) THEN RET
  13785. IF(&A)>(45) THEN RET
  13786. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  13787. DELAY18TH(2)
  13788. LOOP
  13789. *WIPC
  13790. LOCALKEY(1)
  13791. IFNOTTRUE(GOTO(NOLKEY))
  13792. SYSKEYCHECK
  13793. SETEQUAL(/RESP=)
  13794. SETEQUAL(/RESP=)
  13795. *NOLKEY
  13796. CCARRIER
  13797. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  13798. CHECKSUM(%VAR%C)
  13799. SETEQUAL(B=6)
  13800. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  13801. SETNV(PBACK=)
  13802. JUMP(GCHAR)
  13803. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  13804. SETEQUAL(/IBUFF=%NV%PBACK%)
  13805. LEN(%NV%PBACK%)
  13806. SETEQUAL(/IBUFF0=%ARESP%)
  13807. RET
  13808. *NOC0
  13809. log(<<,Carrier lost.)
  13810. quitbbs
  13811.  
  13812.  
  13813. *initbox
  13814. setequal(c=07~msgtxt~-1~)
  13815. jump (wipc)
  13816. setequal(c=0F~msgtxt~In-Box Message~1~1~2~)
  13817. jump (wipc)
  13818. setequal(c=0F~RecCount~20~1~0~1~)
  13819. jump (wipc)
  13820. setequal(c=0F~Exit~Exit~1~1~3~)
  13821. jump (wipc)
  13822. setequal(c=0F~Scrl_UP~~1~1~4~)
  13823. jump (wipc)
  13824. setequal(c=0F~Scrl_Dn~~1~1~5~)
  13825. jump (wipc)
  13826. setequal(c=0F~Page_Up~~1~1~6~)
  13827. jump (wipc)
  13828. setequal(c=0F~Page_Dn~~1~1~7~)
  13829. jump (wipc)
  13830. return
  13831. SYSINFOCTLloadsub(control\exitwip.ctl)
  13832. clearscr
  13833. Display(display\sysinfo)
  13834. Say(&CR&&12&BBS SOFTWARE:)
  13835. Say(&15&Powerboard(TM) Bulletin Board System, Ver. %ver%)
  13836. Say(Copyright 1991-95 NuIQ(TM) Software Inc.)
  13837. Say(All Rights Reserved.&CR&)
  13838. AddComma(%CALLERS%)
  13839. Say(&3&You are caller #%ARESP%)
  13840. nicedate(%since%)
  13841. Say(&3&This BBS has been online since %aresp%)
  13842. nicetime(%filupt%)
  13843. setequal(a=%aresp%)
  13844. nicedate(%filup%)
  13845. Say(The last upload to the file area was on %aresp% %var%a)
  13846. nicetime(%msgupt%)
  13847. setequal(a=%aresp%)
  13848. nicedate(%msgup%)
  13849. Say(The last message entered was written on %aresp% %var%a)
  13850. Say(The last user online was *)
  13851. NiceSay(%LASTU%)
  13852. Say(&CR&&12&OPERATING SYSTEM:)
  13853. Say(&15&Microsoft(R) MS-DOS, Ver. %DOSVER%, Copyright Microsoft Corporation)
  13854. Say(All Rights Reserved.)
  13855. LoadSub(control\macros\time.ctl)
  13856. ;enter
  13857. if (%nv%wipe%)=() then return
  13858. setnv(wipe=)
  13859. setnv(wipmode=1)
  13860. return
  13861. MENTERCTL╠(SetEqual(a=5)
  13862.  
  13863. If (%MSGFNET%)=(Y) Then SetEqual(/nvnet=Y)
  13864. If (%MSGFNET%)=(Y) Then Goto (nonet)
  13865. If (%MSGNET%)=(N) Then Goto (nonet)
  13866. Say(      &15&Would you like to send this via NetMail? (&12&Y&15&/&12&N&15&)&14&*)
  13867. Back(4)
  13868. YesNoAsk(*)
  13869. SetEqual(/nvnet=%RESP%)
  13870.         
  13871.   *nonet
  13872. If (%GRAPHICS%)=(ASCII) Then Goto (STMESSG)
  13873. If (/:FLAG2/)=(Yes) then
  13874.   SetMode(full)
  13875.   Goto(MoreStuff)
  13876.  endif
  13877. SetMode(Line)
  13878. Say(&CR&&15& Would you like to use the full-screen editor? (&12&Y&15&/&12&N&15&)&14&*)
  13879. Back(4)
  13880. YesNoAsk(*)
  13881. If (%RESP%)=(Yes) Then SetMode(full)
  13882. *MoreStuff
  13883. If(&z)<>(15) then Goto(Stmessg)
  13884. Say(&15& Would you like to quote from the original message? (&12&Y&15&/&12&N&15&)&14&*)
  13885. Back(4)
  13886. YesNoAsk(*)
  13887. If(%RESP%)=(Yes) then Goto(Quote)
  13888.  
  13889.   *stmessg
  13890. If (%FULL%)=(Yes) Then Goto (fmode)
  13891. if (%graphics%)=(RIP) then clearscr
  13892. Say(&CR&&14&You can start typing in your message now.  When you're finished with)
  13893. Say(the message, press (&11&ENTER&14&) on a blank line.&CR&&CR&&3&    (--------/---------/---------/---------/---------/---------/---------/----))
  13894. CarrierL(Y)
  13895. NotIf (&k)=(20) Then inittxt
  13896. If (&k)=(20) Then setmax(%var%p)
  13897. If (&k)=(20) Then Goto (stedit)
  13898. setwrap()
  13899. GetText(15,7,1,200)
  13900. if (%nv%fromssc%)=(1) then goto (fromssc)
  13901. setwrap()
  13902. say()
  13903.   *ent
  13904. NotIf (&z)=(15) Then display (display\ENTER)
  13905. If (&z)=(15) Then display(display\REPLY)
  13906. Say(&15&What would you like to do with the message?&12&: &14&*)
  13907. MenuKey
  13908. BigNiceSay (u:upload,t:Throw Away,s:Save,e:Edit,a:Add,L:List,c:Change,m:Modify,d:Delete Line,h:help,i:Insert,f:Full Screen Mode Toggle)
  13909. If (&z)=(15) Then bignicesay(q:Quote)
  13910. If (&k)=(30) Then BigIf (c:modi)
  13911. BigIf (u:upload,t:abort,s:save,e:edit,L:list,a:iadd,m:mod,d:del,?:help,h:help,i:insert,f:fulltoggle)
  13912. BigIf(c:chg)
  13913. If (&z)=(15) Then BigIf(q:quote)
  13914. Linefeed(1)
  13915. Say(&CR&&12&Invalid selection ... Please try again.&CR&)
  13916. FlushOut
  13917. Goto (ent)
  13918.   *modi
  13919. Say(&CR&%hRed%Option not available in Comment.&CR&)
  13920. Goto (ent)
  13921.  
  13922.   *help
  13923. NotIf (&z)=(15) Then display(display\help\enter,/:SEC/)
  13924. If (&z)=(15) Then display(display\help\reply,/:SEC/)
  13925. Goto (ent)
  13926.  
  13927.   *upload
  13928.   loadsub(control\macros\uptext.ctl)
  13929.  
  13930. goto (add)
  13931.  
  13932.   *Quote
  13933. LoadSub(control\macros\quote.ctl)
  13934. Goto (add)
  13935. *netImp
  13936.  
  13937.   *FullToggle
  13938. If(/:GRAPHICS/)=(ASCII) then Goto(NoFullAllowed)
  13939. If(%FULL%)=(Yes) then
  13940.   SetMode(line)
  13941.   Say(&CR&&14&Full Screen Mode is now &15&OFF)
  13942.   Goto(ent)
  13943.  endif
  13944. SetMode(full)
  13945. Say(&CR&&14&Full Screen Mode is now &15&ON)
  13946. Goto(ent)
  13947.  
  13948. *NoFullAllowed
  13949. Say(&CR&&12&You are currently in ASCII mode. You must be in at least ANSI mode)
  13950. Say(in order to use the Full Screen Editor!&CR&)
  13951. Goto(ent)
  13952.  
  13953.  
  13954.   *del
  13955. showtxtl(11,3)
  13956. cMenuAsk (&CR& &3&Please enter the first line to delete&12&: &15&*)
  13957. Number(%RESP%)
  13958. IfNotTrue (Goto (invn))
  13959. cmpval(%RESP%,%MAXLINE%)
  13960. IfNotTrue (NotIf (%RESP%)=(%MAXLINE%) Then Goto (invn))
  13961. SetEqual(e=%RESP%)
  13962. Say(&CR&&10&If you only want to delete one line, press (&11&ENTER&10&) here.)
  13963. cMenuAsk (%CRON%&3&  Please enter the last line to delete&12&: &15&*)
  13964. SetEqual(g=%RESP%)
  13965. If (&g)=(<CR>) Then SetEqual(g=%var%e)
  13966. Say(&CR&&14&You have selected to delete the following block of text:)
  13967. ShowTxtT(15,7,%VAR%E,%VAR%G)
  13968. Say(&15&Are you sure you want to delete this text? (&12&Y&15&/&12&N&15&)&14&*)
  13969. Back(4)
  13970. SetEqual(/nvyndef=%YESNODEF%)
  13971. Default(N)
  13972. YesNoAsk(*)
  13973. Default(%NV%YNDEF%)
  13974. SetNv(yndef=)
  13975. NotIf(%RESP%)=(Yes) then goto(delabort)
  13976.  
  13977. DelLines(%var%e,%var%g)
  13978. If (%ARESP%)=(ERROR) Then Goto (invn)
  13979. Say(&CR&&11&Lines %var%e to %var%G have been deleted.)
  13980. Goto (ent)
  13981.  
  13982.   *delabort
  13983.    Say(&CR&&12&Delete text aborted...)
  13984.    Goto(ent)
  13985.   
  13986.   *chg
  13987. If(&z)=(15) then Goto(ModCCList)
  13988. Say(&CR&&15&To whom do you want to send this message?&12&:&15&(                    )&14&*)
  13989. Back(21)
  13990. SetFill(%nv%addressee%)
  13991. cMenuAsk(*)
  13992. killperc
  13993. SetEqual(a=%RESP%)
  13994. SetEqual(/nvaddressee=%RESP%)
  13995. SeekUser(%RESP%)
  13996. SetEqual(c=%NDNUMB%)
  13997. SetEqual(/nvtousernum=%NDNUMB%)
  13998. SetEqual(d=2)
  13999. If (%ARESP%)=(No) Then Goto (notfound)
  14000. *ModCCList
  14001. If (%NV%CCs%)>(0) then
  14002.   Say(&CR&&15&Edit Carbon Copy List? (&12&Y&15&/&12&N&15&)&14&*)
  14003.   Back(4)
  14004.   YesNoAsk(*)
  14005.   If(%RESP%)=(Yes) then Goto(EditCCList)
  14006.  endif
  14007. Say(&CR&&15&Would you like to Carbon Copy this message? (&12&Y&15&/&12&N&15&)&14&*)
  14008. Back(4)
  14009. YesNoAsk(*)
  14010. If(%RESP%)=(Yes) then Goto(EditCCList)
  14011. Goto (ent)
  14012.  
  14013. *EditCCList
  14014. LoadSub(control\macros\editccs.ctl)
  14015. Goto(ent)
  14016.  
  14017.   *mod
  14018. Say(&CR&&15&What is this message about?&12&:&15&(                    )&14&*)
  14019. Back(21)
  14020. SetFill(%nv%subject%)
  14021. cAsk(%LEN%20%*)
  14022. killperc
  14023. SetEqual(b=%RESP%)
  14024. SetEqual(/nvsubject=%RESP%)
  14025. setequal(z=%var%b)
  14026. upcase(b)
  14027. find(%var%b,SYSP)
  14028. iftrue(setequal(z=))
  14029. setequal(b=%var%z)
  14030. Goto (ent)
  14031.  
  14032.   *edit
  14033. If (%FULL%)=(Yes) Then Goto (add)
  14034. cMenuAsk (&CR&&15&Which line would you like to edit?&12&: &14&*)
  14035. Number(%RESP%)
  14036. IfNotTrue (Goto (invn))
  14037. If (%RESP%)=(%MAXLINE%) Then Goto (goedit)
  14038. linefeed(1)
  14039. cmpval(%RESP%,%MAXLINE%)
  14040. If (%ARESP%)=(No) Then Goto (Invn)
  14041.  
  14042.   *goedit
  14043. SetEqual(h=%MAXLINE%)
  14044. setnv(s=%resp%)
  14045. setwrap()
  14046. *goed2
  14047. gettext(15,7,%nv%s%,%nv%s%)
  14048. if (%nv%fromssc%)=(1) then goto (fssc2)
  14049. setwrap()
  14050. setmax(%var%h)
  14051. setnv(s=)
  14052. Goto (ent)
  14053. *fssc2
  14054. say( |)
  14055. setnv(fromssc=)
  14056. goto(goed2)
  14057.  
  14058.   *invn
  14059. Say(&14&That line number doesn't exist in this message.  &11&Try again, please.&CR&)
  14060. Goto (ent)
  14061.  
  14062.   *add
  14063. resetpause
  14064. spause(0)
  14065. CarrierL(Y)
  14066. If (%FULL%)=(Yes) Then Goto (fmode)
  14067. ClearScr
  14068. Say(&14&You may now continue your message.  Press (&11&ENTER&14&) to end the message.&CR&)
  14069. Say(&3&    (--------/---------/---------/---------/---------/---------/---------/----))
  14070. CmpValO(%MAXLINE%,%VAR%A)
  14071. IfTrue(Goto(Shortmess))
  14072. AddVar(%MAXLINE%+-%VAR%A=b)
  14073. AddVar(%VAR%b+-1=c)
  14074. AddVar(%VAR%C+%VAR%A=c)
  14075. If(%VAR%B)<(1) then SetEqual(b=1)
  14076. *ShowIt
  14077. showtxtt(15,7,%VAR%B,%VAR%C)
  14078. setwrap()
  14079. *GetIt
  14080. gettext(15,7,%MAXLINE%,200)
  14081. if (%nv%fromssc%)=(1) then goto (fromssc)
  14082. setwrap()
  14083. delextra
  14084. Goto (ent)
  14085.         
  14086.   *save
  14087. SetEqual(x=)
  14088. SetEqual(/nvattach=)
  14089. SetNv(ATTFNAME=)
  14090. SetEqual(/nvattext=)
  14091. If (%nv%net%)=(Yes) Then Goto (stsave)  ; don't allow attaches in netmail confs
  14092. If (/:FLAG1/)=(Yes) Then Goto(stsave1)
  14093. Say(&CR&&15&Would you like to attach a file to this message? (&12&Y&15&/&12&N&15&)&14&*)
  14094. Back(4)
  14095. YesNoAsk(*)
  14096. If (%RESP%)=(No) Then Goto (stsave1)
  14097. loadsub(control\macros\savevars.ctl)
  14098. loadsub(control\EnterAtt.ctl)
  14099. loadsub(control\macros\restvars.ctl)
  14100.  
  14101.   *stsave
  14102. InpLine(%pbtemp%varr.%NODE%,1)
  14103. SetEqual(r=%ARESP%)
  14104.  
  14105.   *stsave1
  14106. Say(&CR&&11&Saving your message, please wait...*)
  14107. if (%Msgfpvt%)=(Y) then setequal(k=Y)
  14108. if (&z)=(15) then kill(%pbtemp%quote.%node%)
  14109. SetEqual(/nvccing=0)
  14110.  
  14111. NotIf(%NV%CCs%)=(0) then goto(beforeCCline)
  14112. *SaveIt
  14113. SetEqual(/nvccing=)
  14114. NotIf (&z)=(15) Then writemsg(/:LASTMSG/,%nv%addressee%,%nv%addresser%,%nv%subject%,%nv%tousernum%,%nv%msgpvt%,0,%nv%net%,%NV%ATTFNAME%,%NV%ATTEXT%)
  14115. If (&z)=(15) Then writemsg(/:LASTMSG/,%nv%addressee%,%nv%addresser%,%nv%subject%,%nv%tousernum%,%nv%msgpvt%,%nv%orignum%,%nv%net%,%NV%ATTFNAME%,%NV%ATTEXT%)
  14116. SetEqual(a=/:MSENT/)
  14117. Inc(a)
  14118. SetEqual(/MSENT=%VAR%A)
  14119. Say(Saved!)
  14120. NotIf(%NV%CCs%)=(0) then Goto(ccstuff)
  14121.  
  14122. *GetBackHere
  14123. himsg(/:LASTMSG/)
  14124. AddComma(%ARESP%)
  14125. notif (&z)=(15) then log(--,Message (%ARESP%) entered in area #/:LASTMSG/)
  14126. setnv(t=%aresp%)
  14127. addcomma(%nv%orignum%)
  14128. if (&z)=(15) then log (--,Reply (%nv%t%) to #%aresp% entered in area #/:lastmsg/)
  14129. setnv(t=)
  14130. ;APPENDTO (MAILBOX\%VAR%C./:LASTMSG/,%ARESP%)
  14131. if (&z)=(15) then himsg(/:lastmsg/)
  14132. If (&z)=(15) Then SetEqual(f=%ARESP%)
  14133. If (&z)=(15) Then lowmsg(/:LASTMSG/)
  14134. If (&z)=(15) Then SetEqual(n=%ARESP%)
  14135. NotIf (&k)=(20) Then Goto (smsg)
  14136. himsg(/:LASTMSG/)
  14137. redo (/:LASTMSG/,%var%q,%ARESP%)
  14138.  
  14139.   *smsg
  14140. If(%NV%CCs%)=(0) then Say(&4&-- Message Sent --)
  14141. NotIf(%NV%CCs%)=(0) then Say(&4&-- Messages Sent --)
  14142. SetEqual(/nvaddressee=)
  14143. SetEqual(/nvtousernum=)
  14144. SetEqual(/nvsubject=)
  14145. SetEqual(/nvATTFNAME=)
  14146. SetEqual(/nvattext=)
  14147. SetEqual(/nvnet=)
  14148. SetEqual(/nvorignum=)
  14149. Goto (abt)
  14150.         
  14151.   *list
  14152. SetNv(mode=%FULL%)
  14153. SetMode(line)
  14154. linefeed(1)
  14155. showtxtl(11,3)
  14156. linefeed(1)
  14157. enter
  14158. If(%NV%MODE%)=(Yes) then SetMode(Full)
  14159. SetNv(mode=)
  14160. Goto (ent)
  14161.  
  14162.   *abort
  14163. Say(&CR&&15&Are you sure you want to throw this message away? (&12&Y&15&/&12&N&15&)&14&*)
  14164. Back(4)
  14165. SetEqual(/nvyndef=%YESNODEF%)
  14166. Default(N)
  14167. YesNoAsk(*)
  14168. Default(%NV%YNDEF%)
  14169. NotIf(%RESP%)=(Yes) then Goto(Ent)
  14170. Say(&CR&&12&Your message has been thrown away.)
  14171.  
  14172.   *abt
  14173. inittxt
  14174. SetMode(reg)
  14175. goto (doret)
  14176.  
  14177.   *notfound
  14178. eline(70)
  14179. SetEqual(c=0)
  14180. Say(       Their name could not be found.  )
  14181. say(       &15&Would you like to send the message anyway? (&12&Y&15&/&12&N&15&)&14&*)
  14182. Back(4)
  14183. YesNoAsk(*)
  14184. If (%RESP%)=(No) Then Goto (abt)
  14185. Goto (ent)
  14186.         
  14187.   *stedit
  14188. showtxt2(15,7)
  14189. setwrap()
  14190. gettext(15,7,%var%p,200)
  14191. if (%nv%fromssc%)=(1) then goto (fromssc)
  14192. setwrap()
  14193. Goto (ent)
  14194.  
  14195.   *notenufs
  14196. display(display\nospce)
  14197. Goto (stsave)
  14198.         
  14199.   *aborted
  14200. SetEqual(x=)
  14201. FlushOut
  14202. Log(--,Attach upload aborted (%var%x))
  14203. Display(display\attabt)
  14204. Goto (stsave)
  14205.         
  14206.   *alreadyhere
  14207. Display (display\HERENOW)
  14208. Goto (pok)
  14209.  
  14210.   *fmode
  14211. LoadSub(control\macros\fulledit.ctl)
  14212. Goto (ent)
  14213.  
  14214.   *CCStuff
  14215. LoadSub(control\macros\ccmsgs.ctl)
  14216. Goto(GetBackHere)
  14217.  
  14218. *ShortMess
  14219. SetEqual(b=1)
  14220. SetEqual(c=%MAXLINE%)
  14221. AddVar(%VAR%C+-1=c)
  14222. If(&c)=(0) then Goto(GetIt)
  14223. Goto(ShowIt)
  14224.  
  14225. *Iadd
  14226. SetEqual(a=5)
  14227. Goto(Add)
  14228.  
  14229. *insert
  14230. Capture(%pbtemp%ins1.%NODE%,%MAXLINE%)
  14231. *insask
  14232. CMenuAsk(&CR&&15&Insert text before what line number? &14&*)
  14233. Number(%RESP%)
  14234. IfNotTrue(Goto(NotNumber))
  14235. SetEqual(/nvinsbefore=%RESP%)
  14236. LoadSub(control\macros\insert.ctl)
  14237. Goto(ent)
  14238.  
  14239. *notnumber
  14240.  Say(&CR&&12&That is an invalid line number! Please re-enter...)
  14241.  Goto(insask)
  14242.  
  14243. *BeforeCCLine
  14244. Kill(%pbtemp%cc1.%NODE%)
  14245. SetEqual(/nvorigaddr=%NV%ADDRESSEE%)
  14246. Capture(%Pbtemp%cc1.%NODE%,%MAXLINE%)
  14247. LoadSub(control\macros\ccline.ctl)
  14248. Goto(SaveIt)
  14249.  
  14250. *NoCarrier
  14251. Kill(INTMSGS\%USERN%.MES)
  14252. Capture(INTMSGS\%USERN%.MES,%MAXLINE%)
  14253. Zap(INTMSGS\%USERN%.HDR,%NV%ADDRESSEE%)
  14254. AppendTo(INTMSGS\%USERN%.HDR,%NV%TOUSERNUM%)
  14255. AppendTo(INTMSGS\%USERN%.HDR,%NV%SUBJECT%)
  14256. AppendTo(INTMSGS\%USERN%.HDR,%NV%ADDRESSER%)
  14257. AppendTo(INTMSGS\%USERN%.HDR,%NV%MSGPVT%)
  14258. AppendTo(INTMSGS\%USERN%.HDR,%NV%ORIGNUM%)
  14259. AppendTo(INTMSGS\%USERN%.HDR,%NV%NET%)
  14260. AppendTo(INTMSGS\%USERN%.HDR,/:LASTMSG/)
  14261. QuitBBS
  14262.  
  14263. *fromssc
  14264. setnv(fromssc=0)
  14265. say( |)
  14266. goto(getit)
  14267.  
  14268. *doret
  14269. if (%nv%wipe%)=() then return
  14270. setnv(wipe=)
  14271. setnv(wipmode=1)
  14272. return
  14273. INSERTCTL¬
  14274. setwrap()
  14275. *insert
  14276. inittxt
  14277. resetpause
  14278. If (%FULL%)=(Yes) Then Goto (fmode)
  14279. ClearScr
  14280. Say(&14&You may now enter text to insert into the message.  Press (&11&ENTER&14&) to end.&CR&)
  14281. Say(&3&    (--------/---------/---------/---------/---------/---------/---------/----))
  14282. If(%MAXLINE%)>(1) then showtxt2(15,7)
  14283. *getit
  14284. gettext(15,7,%MAXLINE%,99)
  14285. if (%nv%fromssc%)=(1) then goto (fromssc)
  14286. delextra
  14287. Goto(ent)
  14288.  
  14289.   *save
  14290. Kill(%pbtemp%ins2.%NODE%)
  14291. Capture(%pbtemp%ins2.%NODE%,%MAXLINE%)
  14292. Inpopen(%pbtemp%ins1.%NODE%)
  14293. SetEqual(l=1)
  14294. Kill(%pbtemp%ins3.%NODE%)
  14295. DO
  14296.  Inpread
  14297.  inc(l)
  14298.  AppendTo(%pbtemp%ins3.%NODE%,%ARESP%)
  14299.  NotIf(&l)<(%NV%INSBEFORE%) then Goto(OtherIns)
  14300. EOFLOOP
  14301. kill(%pbtemp%ins4.%NODE%)
  14302. DO
  14303.  Inpread
  14304.  NotIf(%ARESP%)=() then AppendTo(%pbtemp%ins4.%NODE%,%ARESP%)
  14305. EOFLOOP
  14306. InpClose
  14307. loadexec(command.com,/c copy %pbtemp%ins3.%NODE%+%pbtemp%ins2.%NODE%+%pbtemp%ins4.%NODE% %pbtemp%insert.%NODE% >nul)
  14308. ;loadexec(command.com,/c copy %pbtemp%ins1.%NODE%+%pbtemp%ins2.%NODE% %pbtemp%insert.%NODE% >nul)
  14309. inittxt
  14310. Enter
  14311. import(%pbtemp%insert.%NODE%,,1,100)
  14312. delextra
  14313. Say(&CR&&12&The text has been inserted into your message.)
  14314. Return
  14315.  
  14316.   *ent
  14317. display (display\FWD)
  14318. Say(&3&What would you like to do with the text to be inserted?&12&: &15&*)
  14319. MenuKey
  14320. BigNiceSay (t:Throw Away,s:Save,e:Edit,a:Add,L:List,d:Delete Line,h:help)
  14321. BigIf (t:abort,s:save,e:edit,L:list,a:add,d:del,h:help)
  14322. Say(&CR&&12&Invalid selection ... Please try again.&CR&)
  14323. FlushOut
  14324. Goto (ent)
  14325.  
  14326.   *help
  14327. ;NotIf (&z)=(15) Then display(display\help\fwd,/:SEC/)
  14328. Say(&12&Help is currently unavailable for this prompt.)
  14329. SecPause(3)
  14330. Goto (ent)
  14331.  
  14332.   *del
  14333. showtxtl(11,3)
  14334. cMenuAsk (&CR& &3&Please enter the first line to delete&12&: &15&*)
  14335. Number(%RESP%)
  14336. IfNotTrue (Goto (invn))
  14337. cmpval(%RESP%,%MAXLINE%)
  14338. IfNotTrue (NotIf (%RESP%)=(%MAXLINE%) Then Goto (invn))
  14339. SetEqual(e=%RESP%)
  14340. Say(&CR&&10&If you only want to delete one line, press (&11&ENTER&10&) here.)
  14341. cMenuAsk (%CRON%&3&  Please enter the last line to delete&12&: &15&*)
  14342. SetEqual(g=%RESP%)
  14343. If (&g)=(<CR>) Then SetEqual(g=%var%e)
  14344. Say(&CR&&14&You have selected to delete the following block of text:)
  14345. ShowTxtT(15,7,%VAR%E,%VAR%G)
  14346. Say(&15&Are you sure you want to delete this text? (&12&Y&15&/&12&N&15&)&14&*)
  14347. Back(4)
  14348. SetEqual(/nvyndef=%YESNODEF%)
  14349. Default(N)
  14350. YesNoAsk(*)
  14351. Default(%NV%YNDEF%)
  14352. SetEqual(/nvyndef=)
  14353. NotIf(%RESP%)=(Yes) then goto(delabort)
  14354.  
  14355. DelLines(%var%e,%var%g)
  14356. If (%ARESP%)=(ERROR) Then Goto (invn)
  14357. Say(&CR&&11&Lines %var%e to %var%G have been deleted.)
  14358. Goto (ent)
  14359.  
  14360.   *delabort
  14361.    Say(&CR&&12&Delete text aborted...)
  14362.    Goto(ent)
  14363.   
  14364.   *list
  14365. linefeed(1)
  14366. showtxtl(11,3) ;showtxtL is the same as showtxt except shows line numbers...
  14367. linefeed(1)
  14368. enter
  14369. Goto (ent)
  14370.  
  14371.   *edit
  14372. If (%FULL%)=(Yes) Then Goto (add)
  14373. cMenuAsk (&CR&&3&Which line would you like to edit?&12&: &15&*)
  14374. Number(%RESP%)
  14375. IfNotTrue (Goto (invn))
  14376. If (%RESP%)=(%MAXLINE%) Then Goto (goedit)
  14377. linefeed(1)
  14378. cmpval(%RESP%,%MAXLINE%)
  14379. If (%ARESP%)=(No) Then Goto (Invn)
  14380.  
  14381.   *goedit
  14382. SetEqual(h=%MAXLINE%)
  14383. setnv(a=%resp%)
  14384. *edt0
  14385. gettext(15,7,%nv%a%,%nv%a%)
  14386. if (%nv%fromssc%)=(1) then goto (edt0)
  14387. setmax(%var%h)
  14388. setnv(a=)
  14389. setwrap()
  14390. Goto (ent)
  14391.  
  14392.   *invn
  14393. Say(&14&That line number doesn't exist in this message.  &11&Try again, please.&CR&)
  14394. Goto (ent)
  14395.  
  14396.    *abort
  14397.    Kill(%pbtemp%ins2.%NODE%)
  14398.    loadexec(command.com,/c copy %Pbtemp%ins1.%NODE% %pbtemp%insert.%NODE% >nul)
  14399.    Return
  14400.  
  14401. *fromssc
  14402. setnv(fromssc=)
  14403. say ( |)
  14404. goto (getit)
  14405. NEWBADCTL|*NewBad
  14406. freespace(%CDRIVE%:)
  14407. if (%ARESP%)<(%MINSPACE%) then
  14408.   log(!!,Drive space low.)
  14409.   quitbbs
  14410.   endif
  14411. appendto(badnames.bbs,%name%)
  14412. log(--,User attempted log on with false info.)
  14413. if (%resp%)<>(%RESP%) then Log(!!,%NAME%'s Reason: "%RESP%")
  14414. Zap(MSG.%NODE%,This message has been automatically generated for you by Powerboard.)
  14415. AppendTo(MSG.%NODE%,)
  14416. AppendTo(MSG.%NODE%,A new user attempted to logon to the BBS with the name %NAME%)
  14417. AppendTo(MSG.%NODE%,at %TIME% on %DATE%. The information entered by this user was either)
  14418. AppendTo(MSG.%NODE%,false, or duplicated the information of a user currently on record.)
  14419. if (%resp%)<>() then
  14420.   AppendTo(MSG.%NODE%,The user offered the following explanation for this false information:)
  14421.   AppendTo(MSG.%NODE%,)
  14422.   AppendTo(MSG.%NODE%,%RESP%)
  14423. endif
  14424. AppendTo(MSG.%NODE%,)
  14425. AppendTo(MSG.%NODE%,If you wish to allow this user to re-logon to your BBS as a new user)
  14426. AppendTo(MSG.%NODE%,under the same name, you must edit the BADNAMES.BBS file in your main)
  14427. AppendTo(MSG.%NODE%,BBS directory and remove this user's name and edit the PHONES.DAT file)
  14428. appendto(MSG.%NODE%,which is also in the main BBS directory and remove the user's phone)
  14429. appendto(MSG.%NODE%,number, which is "\:phone\".)
  14430. AppendTo(MSG.%NODE%,)
  14431.  
  14432. SeekUser(%SYSOP%)
  14433. SetNv(tousernum=%NDNUMB%)
  14434. If(%ARESP%)=(No) then SetNv(tousernum=1)
  14435. ;if the sysop cannot be located in user file, assume sysop is user #1
  14436.  
  14437. InitTxt
  14438. Lines(MSG.%NODE%)
  14439. Import(MSG.%NODE%,,1,%ARESP%)
  14440. setnv(la=/:lastmsg/)
  14441. selarea(1)
  14442. Writemsg(1,%SYSOP%,Powerboard BBS,New Logon With False Info,%nv%tousernum%,Yes,0,No,,)
  14443. selarea(%nv%la%)
  14444. Kill(MSG.%NODE%)
  14445.  
  14446. quitbbs
  14447. FLISTCTL¼
  14448. if (%NV%WIPMODE%)=(1) then loadmem(control\macros\flistwip.ctl)
  14449. setequal(/numb3=0)
  14450. setequal(/numb3s=0)
  14451. numb(Yes)
  14452. setequal(y=5)
  14453. clearscr
  14454. setequal(k=0)
  14455. if (%CD%)=(No) then display(%FILPATH%header)
  14456. if (%CD%)=(Yes) then display(%CDPath%/:lastdown/\header)
  14457. setnv(fn=%filpath%files.bbs)
  14458. if (%CD%)=(Yes) then setnv(fn=%CDPATH%/:lastdown/\files.bbs)
  14459. if (%Y%)=(25) then goto (blist)
  14460. if (%Y%)=(23) then goto (blist)
  14461. addvar(%y%+-1=k)
  14462. ;addvar(%y%+0=k)
  14463. spause(%var%k)
  14464. setequal(K=0)
  14465.  
  14466.         *blist
  14467. jump(initscreen)
  14468. jump(pauseprompt1)
  14469. lines(%nv%fn%)
  14470. fdisp(%nv%fn%,12,15,7,11,3,%var%k,%aresp%)
  14471. ;if (%CD%)=(No) then fsearch(%FILPATH%files.bbs,12,15,7,11,3,,1,1,%var%k)
  14472. ;if (%CD%)=(Yes) then fsearch(%CDPath%/:lastdown/\files.bbs,12,15,7,11,3,,1,1,%var%k)
  14473. spause(0)
  14474. if (%ARESP%)=(No) then goto (err)
  14475. ;if (%graphics%)=(RIP) then
  14476. ;        say(@CR@$7$&0&END$0$&15&)
  14477. ;        defpause(!|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08|fZKQO|c0F|=001EKF01|W00|Y00000209|1B00000207QI03010E0F080700000F07000000|1U00I26YKU0000<>View<>V|1B00000207QI03010E0F080700000F07000000|1U6YI2DWKU0000<>Download<>D|1B00000207QI03010E0F080700000F07000000|1UDWI2KUKU0000<>Tag<>T|)
  14478. ;        defpause(%defpause%1B00000207QI03010E0F080700000F07000000|1UKUI2RSKU0000<>Help<>H|1B00000207QI03010E0F080700000F07000000|1URSI2YQKU0000<>Quit<>|#|#|#)
  14479. ;endif
  14480. ;if (%GRAPHICS%)<>(RIP) then
  14481. defpause($7$&0&END$0$&3& &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&ENTER&3& to Quit?&12&: &7&)
  14482. defPif(v:view2,h:fhlp,t:tag2,d:down2)
  14483. setequal(/nonstop=0)
  14484. pauseprompt
  14485. jump(pauseprompt)
  14486. numb(No)
  14487. Return
  14488.         *fhlp
  14489. setequal(k=%ARESP%)
  14490. jump(pauseprompt)
  14491. display(display\help\lst,/:SEC/)
  14492. goto (blist2)
  14493.  
  14494.         *err
  14495. jump(pauseprompt)
  14496. display(display\NOFILES)
  14497. enter
  14498. Numb(No)
  14499. comprint(!|*|#|#|#)
  14500. Return
  14501.         
  14502. *view2
  14503. setequal(k=%ARESP%)
  14504. loadsub(control\macros\savevars.ctl)
  14505. loadsub(control\macros\zview.ctl)
  14506. loadsub(control\macros\restvars.ctl)
  14507. goto (blist2)
  14508. *tag2
  14509. setequal(k=%ARESP%)
  14510. loadsub(control\macros\numbtag.ctl)
  14511. goto (blist2)
  14512. *down2
  14513. setequal(k=%ARESP%)
  14514. loadsub(control\macros\savevars.ctl)
  14515. loadsub(control\macros\down.ctl)
  14516. loadsub(control\macros\restvars.ctl)
  14517. selfarea(/:Lastdown/)
  14518. goto (blist2)
  14519. *blist2
  14520. setequal(/numbto=0)
  14521. spause(0)
  14522. ;if (%GRAPHICS%)<>(RIP) then clearscr
  14523. clearscr
  14524. goto (blist)
  14525.  
  14526. *Pauseprompt1
  14527. ;if (%GRAPHICS%)=(RIP) then
  14528. ;  defpause(!|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08|fZKQO|c0F|=001EKF01|W00|Y00000209|1B00000207QI03010E0F080700000F07000000|1U00I26YKU0000<>Stop1<>S|1B00000207QI03010E0F080700000F07000000|1U6YI2DWKU0000<>Nonstop<>N|1B00000207QI03010E0F080700000F07000000|1UDWI2KUKU0000<>View<>V|1B00000207QI03010E0F080700000F07000000)
  14529. ;  defpause(%defpause%|1UKUI2RSKU0000<>Download<>D|1B00000207QI03010E0F080700000F07000000|1URSI2YQKU0000<>Tag<>T|1B00000207QI03010E0F080700000F07000000|1U00KU6YNM0000<>Help<>H|1B00000207QI03010E0F080700000F07000000|1U6YKUDWNM0000<>Continue<>C|#|#|#)
  14530. ;endif
  14531. ;if (%GRAPHICS%)<>(RIP) then
  14532. DefPause($7$&0&More$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop, &11&V&3&:View, &11&D&3&:Download, &11&T&3&:Tag, &11&H&3&:Help or &11&C&3&:Continue?&12&: &7&)
  14533. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  14534. ret
  14535.  
  14536.  
  14537. *Pauseprompt
  14538. ;if (%GRAPHICS%)=(RIP) then defpause(!|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08|fZKQO|c0F|=001EKF01|W00|Y00000209|1B00000207QI03010E0F080700000F07000000|1U00I26YKU0000<>Stop<>S|1B00000207QI03010E0F080700000F07000000|1U6YI2DWKU0000<>Nonstop<>N|1B00000207QI03010E0F080700000F07000000|1UDWI2KUKU0000<>Continue<>C|#|#|#)
  14539. ;if (%GRAPHICS%)<>(RIP) then
  14540. DefPause($7$&0&Send more text$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop or &11&C&3&:Continue?&12&: &7&)
  14541. defPif(s:stop,n:nonstop)
  14542. ret
  14543.  
  14544. *InitScreen
  14545. ;if (%graphics%)=(RIP) then
  14546. ;  say(!|*|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08)
  14547. ;  say(!|fZKQO|b0000ZII2280S0002X000|#|#|#)
  14548. ;endif
  14549. ret
  14550.  
  14551. return
  14552. ;; END OF FILE
  14553.  
  14554. VIEWFILECTL∞loadsub(control\exitwip.ctl)
  14555.  
  14556. ask(&15&Enter the filename to view? (ENTER=Quit)&14&*)
  14557. if (%resp%)=() then goto (doret)
  14558. clearscr
  14559. view(%resp%)
  14560.  
  14561. enter
  14562.  
  14563. *doret
  14564. if (%nv%wipe%)=() then return
  14565. setnv(wipe=)
  14566. setnv(wipmode=1)
  14567. return
  14568. EXECCTL╪loadsub(control\exitwip.ctl)
  14569.  
  14570. ask(&15&Enter the command to execute? &14&*)
  14571. if (%resp%)=() then goto (doret)
  14572. exec(%resp%)
  14573.  
  14574. enter
  14575.  
  14576. *doret
  14577. if (%nv%wipe%)=() then return
  14578. setnv(wipe=)
  14579. setnv(wipmode=1)
  14580. return
  14581. HPHONECTLé*thetop0
  14582. Say(&15&Do you have an international phone number? (&12&Y&15&/&12&N&15&)&14&*)
  14583. Back(4)
  14584. YesNoAsk(*)
  14585. SetNv(intl=%RESP%)
  14586. If(%RESP%)=(No) then Goto(normal)
  14587. menuask(%MIN%1%&CR&&15&What is your home phone number?&12&: &14&*)
  14588. Len(%RESP%)
  14589. If(%ARESP%)<(10) then Goto(dp2)
  14590. repeating(%resp%)
  14591. iftrue(goto (dp))
  14592. SetEqual(/PHONE=%RESP%)
  14593. *logandret
  14594. If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Phone # to %RESP%)
  14595. return
  14596.  
  14597. *dp2
  14598. say(&CR&&12&You have entered an invalid phone number!&7&&CR&)
  14599. goto (thetop0)
  14600.  
  14601. *dp
  14602. log(!!,User attempted to change phone)
  14603. log(!!,number to %RESP%, but is)
  14604. log(!!,an invalid/existing phone number!)
  14605. say(&CR&&12&You have entered an invalid phone number!&7&&CR&)
  14606. SecPause(2)
  14607. return
  14608.  
  14609. *normal
  14610. Say(&CR&&15&Please enter your home phone number&12&: &14&*)
  14611. Picture(###-###-####)
  14612. repeating(%resp%)
  14613. iftrue(goto (dp))
  14614. SetEqual(/PHONE=%RESP%)
  14615. Goto(logandret)
  14616. STATSWIPCTL╗*thetop
  14617.  
  14618. setnv(NoInfo=1)
  14619. if (%handle%)=(Yes) then loadsub(control\ewipscr.ctl,setnv(wipf=stats-a))
  14620. if (%handle%)<>(Yes) then loadsub(control\ewipscr.ctl,setnv(wipf=stats))
  14621.  
  14622. setequal(c=07~password~/:pass/~)
  14623. jump (wipc)
  14624. setequal(c=07~cityst~/:from/~)
  14625. jump (wipc)
  14626. setequal(c=07~voice~/:phone/~)
  14627. jump (wipc)
  14628. setequal(c=07~company~/:company/~)
  14629. jump (wipc)
  14630. setequal(c=07~street~/:street1/~)
  14631. jump (wipc)
  14632. setequal(c=07~mhsname~/:mhsname/~)
  14633. jump (wipc)
  14634. setequal(c=07~work~/:work/~)
  14635. jump (wipc)
  14636. if (%handle%)<>(Yes) then goto (noA)
  14637. setequal(c=07~alias~/:alias/~)
  14638. jump (wipc)
  14639. *noA
  14640. setequal(c=07~screenlen~/:screenlen/~)
  14641. jump (wipc)
  14642. setequal(c=07~protocol~/:protocol/~)
  14643. jump (wipc)
  14644. setequal(c=07~attach~/:flag1/~)
  14645. jump (wipc)
  14646. setequal(c=07~music~/:ansmusic/~)
  14647. jump (wipc)
  14648. setequal(c=07~fullscr~/:flag2/~)
  14649. jump (wipc)
  14650. setequal(c=07~avail~/:defavail/~)
  14651. jump (wipc)
  14652. setequal(c=07~graphics~/:graphics/~)
  14653. jump (wipc)
  14654. setnv(graphics=/:graphics/)
  14655. setequal(c=07~personal~/:flag3/~)
  14656. jump (wipc)
  14657. setequal(c=07~newf~/:flag4/~)
  14658. jump (wipc)
  14659.  
  14660. *initBox
  14661.  
  14662. *GetResp0
  14663. setequal(c=0A~)
  14664. jump (wipc)
  14665.  
  14666. jump (getInput)
  14667. writeln(Response from user: "%resp%")
  14668. if (%nv%wiprestreq%)=(1) then goto (thetop)
  14669. if (%resp%)=(protocol) then
  14670.   loadsub(control\exitwip.ctl)
  14671.   jump (upgraphics)
  14672.   loadsub(control\macros\defprot.ctl)
  14673.   if (%graphics%)<>(WIP) then loadmem(control\macros\stats.ctl)
  14674.   goto (thetop)
  14675. endif
  14676.  
  14677. if (%resp%)=(attach) then
  14678.   setequal(c=/:flag1/)
  14679.   setequal(/flag1=Yes)
  14680.   if (%var%c)=(Yes) then setequal(/flag1=No)
  14681.   setequal(c=07~attach~/:flag1/~)
  14682.   jump (wipc)
  14683. endif
  14684. if (%resp%)=(music) then
  14685.   setequal(c=/:ansmusic/)
  14686.   setequal(/ansmusic=Yes)
  14687.   if (%var%c)=(Yes) then setequal(/ansmusic=No)
  14688.   setequal(c=07~music~/:ansmusic/~)
  14689.   jump (wipc)
  14690. endif
  14691.  
  14692. if (%resp%)=(fullscr) then
  14693.   setequal(c=/:flag2/)
  14694.   setequal(/flag2=Yes)
  14695.   if (%var%c)=(Yes) then setequal(/flag2=No)
  14696.   setequal(c=07~fullscr~/:flag2/~)
  14697.   jump (wipc)
  14698. endif
  14699.  
  14700. if (%resp%)=(avail) then
  14701.   setequal(c=/:defavail/)
  14702.   setequal(/defavail=Yes)
  14703.   if (%var%c)=(Yes) then setequal(/defavail=No)
  14704.   setequal(c=07~defavail~/:defavail/~)
  14705.   jump (wipc)
  14706. endif
  14707.  
  14708. if (%resp%)=(personal) then
  14709.   setequal(c=/:flag3/)
  14710.   setequal(/flag3=Yes)
  14711.   if (%var%c)=(Yes) then setequal(/flag3=No)
  14712.   setequal(c=07~personal~/:flag3/~)
  14713.   jump (wipc)
  14714. endif
  14715.  
  14716. if (%resp%)=(newf) then
  14717.   setequal(c=/:flag4/)
  14718.   setequal(/flag4=Yes)
  14719.   if (%var%c)=(Yes) then setequal(/flag4=No)
  14720.   setequal(c=07~newf~/:flag4/~)
  14721.   jump (wipc)
  14722. endif
  14723.  
  14724. if (%resp%)=(graphics) then
  14725.   setequal(c=%nv%graphics%)
  14726.   if (%var%c)=(ASCII) then setnv(graphics=ANSI)
  14727.   if (%var%c)=(ANSI) then setnv(graphics=RIPscrip)
  14728.   if (%var%c)=(RIPscrip) then setnv(graphics=WIP)
  14729.   if (%var%c)=(RIPSCRIP) then setnv(graphics=WIP)
  14730.   if (%var%c)=(RIP) then setnv(graphics=WIP)
  14731.   if (%var%c)=(WIP) then setnv(graphics=ASCII)
  14732.   setequal(c=07~graphics~%nv%graphics%~)
  14733.   jump (wipc)
  14734. endif
  14735.  
  14736. if (%resp%)=(Okay) then goto (ret0)
  14737. if (%resp%)=(quit) then goto (ret0)
  14738. setequal(b=%resp%)
  14739. find(&b,;)
  14740. if (%aresp%)>(0) then goto (NotListC)
  14741. find(&b,,)
  14742. if (%aresp%)<=(1) then goto (NotListC)
  14743. addvar(%aresp%+-1=e)
  14744. addvar(%aresp%+1=f)
  14745. get(&b,1,%var%e)
  14746. setnv(wipc=%aresp%)
  14747. get(&b,%var%f,1000)
  14748. setequal(b=%aresp%)
  14749. goto (getresp0)
  14750. *NotListC
  14751. find(&b,;)
  14752. if (%aresp%)<=(1) then goto (NoCmnd)
  14753. addvar(%aresp%+-1=e)
  14754. addvar(%aresp%+1=f)
  14755. get(&b,1,%var%e)
  14756. SetNv(WipC=%aresp%)
  14757. setnv(cText=)
  14758. len(%var%b)
  14759. if (%var%f)<=(%aresp%) then
  14760. get(&b,%var%f,1000)
  14761. SetNv(Ctext=%aresp%)
  14762. endif
  14763. if (%nv%wipc%)=(password) then setequal(/pass=%nv%Ctext%)
  14764. if (%nv%wipc%)=(cityst) then setequal(/from=%nv%Ctext%)
  14765. if (%nv%wipc%)=(voice) then setequal(/phone=%nv%Ctext%)
  14766. if (%nv%wipc%)=(company) then setequal(/company=%nv%Ctext%)
  14767. if (%nv%wipc%)=(street) then setequal(/street1=%nv%ctext%)
  14768. if (%nv%wipc%)=(mhsname) then setequal(/mhsname=%nv%Ctext%)
  14769. if (%nv%wipc%)=(work) then setequal(/work=%nv%Ctext%)
  14770. if (%nv%wipc%)=(alias) then setequal(/alias=%nv%Ctext%)
  14771. if (%nv%wipc%)=(screenlen) then setequal(/screenlen=%nv%Ctext%)
  14772. *NoCmnd
  14773. setnv(wtxt=)
  14774. goto (getResp0)
  14775.  
  14776.  
  14777. *UserFind
  14778. setequal(c=14~listbox~1000~11~)
  14779. jump (wipc)
  14780. SetActivity (User Find)
  14781.  
  14782. *Main
  14783.  *Stk
  14784.  ;%NV%KEY% is Search Key
  14785.  if (%nv%key%)=() then goto (notext)
  14786.  log (--,UserFind for:%nv%key%)
  14787.  writeln(Searching for: "%nv%key%")
  14788.  SetEqual(n=1) 
  14789.  ;user number to search from
  14790.  *s2
  14791.  SetEqual(y=0)
  14792.  
  14793. *Searching
  14794.  SeekUserP(%NV%KEY%,%VAR%N)
  14795.  ifnottrue(goto (nomore))
  14796.  AddVar(%NDXREC%+1=n)
  14797.  Inc(y)
  14798.  Loaduser (%NDNUMB%)
  14799.  SetEqual(a=\:NAME\)
  14800.  SetLen(a=23)
  14801.  setequal(z=%var%a)
  14802.  SetEqual(a=\:FROM\)
  14803.  SetLen(a=26)
  14804.  setequal(z=%var%z%var%a)
  14805.  setequal(z=%var%z\:LAST\)
  14806.  writeln(%var%z)
  14807.  setequal(c=07~listbox~%var%z~)
  14808.  jump (wipc)
  14809.  
  14810.  writeln(y: "%var%y")
  14811.  if (%var%y)=>(11) then goto (donef)
  14812.  
  14813.  Goto(Searching)
  14814.  
  14815. *NoMore
  14816.  writeln(No more matches to the text you specified could be found.)
  14817.  setequal(c=13~No more matches to the text you specified could be found.~End of List~1~)
  14818.  jump (okbox0)
  14819.  goto (getresp0)
  14820.  
  14821. *GCHAR
  14822. COMPRINT(%NV%TEXT%)
  14823. SETEQUAL(A=0)
  14824. DO
  14825. COMKEY
  14826. ASCII
  14827. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  14828. INC(A)
  14829. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  14830. IF(%ARESP%)=(&B) THEN RET
  14831. IF(&A)>(200) THEN RET
  14832. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  14833. DELAY18TH(2)
  14834. LOOP
  14835. *WIPC
  14836. LOCALKEY(1)
  14837. IFNOTTRUE(GOTO(NOLKEY))
  14838. SYSKEYCHECK
  14839. SETEQUAL(/RESP=)
  14840. SETEQUAL(/RESP=)
  14841. *NOLKEY
  14842. CCARRIER
  14843. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  14844. CHECKSUM(%VAR%C)
  14845. SETEQUAL(B=6)
  14846. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  14847. SETNV(PBACK=)
  14848. JUMP(GCHAR)
  14849. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  14850. setequal(c=%aresp%)
  14851. SETEQUAL(/IBUFF=%NV%PBACK%)
  14852. LEN(%NV%PBACK%)
  14853. SETEQUAL(/IBUFF0=%ARESP%)
  14854. SETEQUAL(/ARESP=%VAR%C)
  14855. RET
  14856. *NOC0
  14857. log(<<,Carrier lost.)
  14858. quitbbs
  14859.  
  14860. *wipask
  14861. loadsub(control\wipask.ctl)
  14862. ret
  14863.  
  14864. *getinput
  14865. writeln(Waiting for input from remote user.)
  14866. setequal(y=180)
  14867. jump (wipask)
  14868. if (%aresp%)<>(24) then ret
  14869. loadsub(control\wipask.ctl,goto(twarn))
  14870. setequal(y=60)
  14871. jump (wipask)
  14872. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  14873. ret
  14874.  
  14875. *donef
  14876. write(Updating list box on user's screen ... )
  14877. setequal(c=07~listbox~-1~)
  14878. jump (wipc)
  14879. setequal(c=0F~listbox~Find A User~1~1~2~)
  14880. jump (wipc)
  14881. setequal(c=0F~RecCount~11~1~0~1~)
  14882. jump (wipc)
  14883. setequal(c=0F~Exit~Exit~1~1~3~)
  14884. jump (wipc)
  14885. setequal(c=0F~Scrl_UP~~1~1~4~)
  14886. jump (wipc)
  14887. setequal(c=0F~Scrl_Dn~~1~1~5~)
  14888. jump (wipc)
  14889. setequal(c=0F~Page_Up~~1~1~6~)
  14890. jump (wipc)
  14891. setequal(c=0F~Page_Dn~~1~1~7~)
  14892. jump (wipc)
  14893. setequal(c=0A~)
  14894. jump (wipc)
  14895. writeln(Done!)
  14896. goto(getresp0)
  14897.  
  14898. *okbox0
  14899. Jump (wipc)
  14900. comlineinput(180,l)
  14901. if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  14902. if (%resp%)=() then goto (okbox)
  14903. ret
  14904.  
  14905. *notext
  14906. writeln(No text was specified.  Enter some text to search for and try again...)
  14907. setequal(c=13~No text was specified.  Please enter some text to search for and try again or click "quit" to exit.~No Text Specified~1~)
  14908. jump (okbox0)
  14909. goto (getresp0)
  14910.  
  14911. *upgraphics
  14912. setequal(/graphics=%nv%graphics%)
  14913. if (%graphics%)<>(WIP) then loadsub(control\exitwip.ctl)
  14914. ret
  14915.  
  14916. *ret0
  14917. jump (upgraphics)
  14918. return
  14919. FULLEDITCTLWsetwrap()
  14920.         *fullmode
  14921. seek(extedit.bat)
  14922. iftrue(goto (extern))
  14923. CmpVal(19,%MAXLINE%)
  14924. IfTrue (goto (page2))
  14925.  
  14926. setequal(p=%MAXLINE%)
  14927. cmpval(19,%var%p)
  14928. iftrue (setequal(p=19))
  14929. setline(%var%p)
  14930. *bpage1
  14931. ClearScr
  14932. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  14933. say($7$                                                                               |)
  14934. Say(&0&To: &2&%nv%addressee%   &0&From: &2&%NAME%  &0&Regarding: &2&%nv%subject%$0$)
  14935. say(    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  14936. NumbLines(1,19)
  14937. AnsiGoto(1,4)
  14938. ShowTxtL(15,7,1,20)
  14939. addvar(%var%p+3=p)
  14940. ansigoto(1,%var%p)
  14941. GetText(15,7,1,19)
  14942. if (%nv%fromssc%)=(1) then goto (fromssc1)
  14943. *resume1
  14944. if (%ARESP%)=(DOWNEXIT) then goto (bpage02)
  14945. If (%ARESP%)=(FULLEXIT) Then goto (quit)
  14946.  
  14947.         *page2
  14948. CmpVal(33,%MAXLINE%)
  14949. IfTrue (goto (page3))
  14950.  
  14951. setequal(p=%MAXLINE%)
  14952. cmpval(34,%var%p)
  14953. iftrue (setequal(p=34))
  14954. setline(%var%p)
  14955. *bpage2
  14956. ClearScr
  14957. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  14958. say($7$                                                                               |)
  14959. Say(&0&To: &2&%nv%addressee%        &0&From: &2&%NAME%    &0&Regarding: &2&%nv%subject%$0$)
  14960. say(    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  14961. NumbLines(15,33)
  14962. AnsiGoto(1,4)
  14963. ShowTxtL(15,7,15,34)
  14964. addvar(%var%p+-11=p)
  14965. ansigoto(1,%var%p)
  14966. GetText(15,7,15,33)
  14967. if (%nv%fromssc%)=(1) then goto (fromssc2)
  14968. *resume2
  14969. if (%ARESP%)=(UPEXIT) then goto (bpage01)
  14970. if (%ARESP%)=(DOWNEXIT) then goto (bpage33)
  14971. If (%ARESP%)=(FULLEXIT) Then goto (quit)
  14972.  
  14973.  
  14974.         *page3
  14975. cmpval(47,%Maxline%)
  14976. iftrue (goto (page4))
  14977. setequal(p=%MAXLINE%)
  14978. cmpval(48,%var%p)
  14979. iftrue (setequal(p=48))
  14980. setline(%var%p)
  14981. *bpage3
  14982. ClearScr
  14983. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  14984. say($7$                                                                               |)
  14985. Say(&0&To: &2&%nv%addressee%        &0&From: &2&%NAME%    &0&Regarding: &2&%nv%subject%$0$)
  14986. say(    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  14987. NumbLines(30,48)
  14988. AnsiGoto(1,4)
  14989. ShowTxtL(15,7,30,49)
  14990. addvar(%var%p+-26=p)
  14991. ansigoto(1,%var%p)
  14992. GetText(15,7,30,48)
  14993. if (%nv%fromssc%)=(1) then goto (fromssc3)
  14994. *resume3
  14995. if (%ARESP%)=(UPEXIT) then goto (bpage22)
  14996. if (%ARESP%)=(DOWNEXIT) then goto (bpage44)
  14997. if (%ARESP%)=(FULLEXIT) then goto (quit)
  14998.  
  14999.   *page4
  15000. setequal(p=%MAXLINE%)
  15001. cmpval(59,%var%p)
  15002. iftrue (setequal(p=59))
  15003. setline(%var%p)
  15004. *bpage4
  15005. clearscr
  15006. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  15007. say($7$                                                                               |)
  15008. Say(&0&To: &2&%nv%addressee%        &0&From: &2&%NAME%    &0&Regarding: &2&%nv%subject%$0$)
  15009. say(    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  15010. NumbLines(48,59)
  15011. AnsiGoto(1,4)
  15012. ShowTxtL(15,7,48,60)
  15013. addvar(%var%p+-44=p)
  15014. ansigoto(1,%var%p)
  15015. GetText(15,7,48,59)
  15016. if (%nv%fromssc%)=(4) then goto (fromssc4)
  15017. *resume4
  15018. if (%ARESP%)=(UPEXIT) then goto (bpage43)
  15019.  
  15020.         *quit
  15021. AnsiGoto(1,22)
  15022. linefeed(1)
  15023. setwrap()
  15024. Return
  15025.  
  15026. *extern
  15027. inittxt
  15028. exec(extedit.bat %node%)
  15029. seek(msgtmp)
  15030. ifnottrue(return)
  15031. lines(msgtmp)
  15032. import (msgtmp,,1,%aresp%)
  15033. ;setequal(a=%aresp%)
  15034. ;inc(a)
  15035. ;setmax(%var%a)
  15036. return
  15037.  
  15038.  
  15039. *fromssc4
  15040. setnv(fromssc=)
  15041. say( |)
  15042. gettext(15,7,%maxline%,60)
  15043. if (%nv%fromssc%)=(1) then goto (fromssc4)
  15044. goto(resume4)
  15045.  
  15046. *fromssc3
  15047. setnv(fromssc=)
  15048. say( |)
  15049. gettext(15,7,%maxline%,49)
  15050. if (%nv%fromssc%)=(1) then goto (fromssc3)
  15051. goto(resume3)
  15052.  
  15053.  
  15054. *fromssc2
  15055. setnv(fromssc=)
  15056. say( |)
  15057. gettext(15,7,%maxline%,33)
  15058. if (%nv%fromssc%)=(1) then goto (fromssc2)
  15059. goto(resume2)
  15060.  
  15061. *fromssc1
  15062. setnv(fromssc=)
  15063. say( |)
  15064. gettext(15,7,%maxline%,19)
  15065. if (%nv%fromssc%)=(1) then goto (fromssc1)
  15066. goto(resume1)
  15067.  
  15068. *bpage02
  15069. setwrap ()
  15070. addvar(%fullexitline%+1=p)
  15071. setline(%var%p)
  15072. goto (bpage2)
  15073.  
  15074. *bpage01
  15075. ;addvar(%var%p+-1=p)
  15076. setwrap ()
  15077. addvar(%fullexitline%+-1=p)
  15078. setline(%var%p)
  15079. goto (bpage1)
  15080.  
  15081. *bpage22
  15082. setwrap ()
  15083. addvar(%fullexitline%+-1=p)
  15084. setline(%var%p)
  15085. goto (bpage2)
  15086.  
  15087. *bpage43
  15088. setwrap ()
  15089. addvar(%fullexitline%+-1=p)
  15090. setline(%var%p)
  15091. goto (bpage3)
  15092.  
  15093. *bpage33
  15094. setwrap ()
  15095. addvar(%fullexitline%+1=p)
  15096. setline(%var%p)
  15097. goto (bpage3)
  15098.  
  15099. *bpage44
  15100. setwrap ()
  15101. addvar(%fullexitline%+1=p)
  15102. setline(%var%p)
  15103. goto (bpage4)
  15104. NEWBULLCTLêif (%nv%wipmode%)=(1) then goto (wip)
  15105. say(&15&&CR&Please Wait!... &14&Searching for bulletins updated since your last logon...)
  15106. newbulletins(display\bull)
  15107. if (%ARESP%)=(NONE) then goto (nobul)
  15108. view (updated.%NODE%)
  15109. enter
  15110. return
  15111.         
  15112.         *nobul
  15113. say(&10&None of the bulletins have been updated since your last call.)
  15114. enter
  15115. return
  15116.  
  15117. *wip
  15118. if (%nv%wipe%)=() then goto (nowe)
  15119. setequal(c=01~)
  15120. jump (wipc)
  15121. comlineinput(10,l)
  15122. flushout
  15123. *nowe
  15124. newbulletins(display\bull)
  15125. if (%aresp%)=(NONE) then goto (wipnone)
  15126.  
  15127. fcopy(updated.%node%,display\updated.%node%)
  15128. setnv(wipPath=%pbtemp%)
  15129. kill(%nv%wipPath%bulltmpl.wip)
  15130. loadmem(control\ewipscr.ctl,setnv(wipf=bulltmpl))
  15131.  
  15132. *wipnone
  15133. flushout
  15134. writeln ( None of the bulletins have been updated since your last call.)
  15135. writeln()
  15136. setequal(c=13~None of the bulletins have been updated since your last call.~No Bulletin Updates~1~)
  15137. jump (okbox)
  15138. return
  15139.  
  15140.  
  15141. *okbox
  15142. Jump (wipc)
  15143. *try4
  15144. comlineinput(180,l)
  15145. if (%resp%)=() then goto (try4)
  15146. ret
  15147.  
  15148. *GCHAR
  15149. COMPRINT(%NV%TEXT%)
  15150. SETEQUAL(A=0)
  15151. DO
  15152. COMKEY
  15153. ASCII
  15154. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  15155. INC(A)
  15156. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  15157. IF(%ARESP%)=(&B) THEN RET
  15158. IF(&A)>(45) THEN RET
  15159. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  15160. DELAY18TH(2)
  15161. LOOP
  15162. *WIPC
  15163. LOCALKEY(1)
  15164. IFNOTTRUE(GOTO(NOLKEY))
  15165. SYSKEYCHECK
  15166. SETEQUAL(/RESP=)
  15167. SETEQUAL(/RESP=)
  15168. *NOLKEY
  15169. CCARRIER
  15170. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  15171. CHECKSUM(%VAR%C)
  15172. SETEQUAL(B=6)
  15173. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  15174. SETNV(PBACK=)
  15175. JUMP(GCHAR)
  15176. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  15177. SETEQUAL(/IBUFF=%NV%PBACK%)
  15178. LEN(%NV%PBACK%)
  15179. SETEQUAL(/IBUFF0=%ARESP%)
  15180. RET
  15181. *NOC0
  15182. log(<<,Carrier lost.)
  15183. quitbbs
  15184. QUITCHATCTL╫ cursoroff
  15185. if (%nv%logchat%)<>() then
  15186.   jump (closeChatLog)
  15187.   endif
  15188. log(--,Sysop to User Chat Terminated)
  15189. ansigoto(1,23)
  15190. display(display\endchat)
  15191.  
  15192. flushout
  15193. if (%nv%wipe%)=() then goto (dr0)
  15194. setnv(wipe=)
  15195. setnv(wipmode=1)
  15196. setequal(/resp=)
  15197. *dr0
  15198. setnv(norefresh=)
  15199. if (%graphics%)=(WIP) then goto (wip0)
  15200. togsplit
  15201. if (%nv%restscr%)=(1) then
  15202.   clearscr
  15203.   setequal(c=1)
  15204.   do
  15205.     inc(c)
  15206.     if (%var%c)=>(%nv%maxrl%) then goto (dn0)
  15207.     setequal(d=nv%scrbuf%var%c%)
  15208.     prc(%%VAR%D)
  15209.     setequal(d=%aresp%)
  15210.     say(%var%d)
  15211.   loop
  15212.   *dn0
  15213.   setequal(d=nv%scrbuf%var%c%)
  15214.   prc(%%var%d)
  15215.   setequal(d=%aresp%)
  15216.   say(%var%d*)
  15217.   kill(%pbtemp%ssc.%node%)
  15218.   if (%GRAPHICS%)<>(ASCII) THEN
  15219.   ansigoto(%NV%SVX%,%NV%SVY%)
  15220.   ENDIF
  15221.   setnv(svx=)
  15222.   setnv(svy=)
  15223.   endif
  15224. *wip0
  15225. setnv(curactive=)
  15226. setnv(logchat=)
  15227. setnv(syscb=0)
  15228. setnv(usrcb=0)
  15229. setnv(SpLine=)
  15230. setnv(sysx=)
  15231. setnv(sysy=)
  15232. setnv(usrx=)
  15233. setnv(usry=)
  15234. setnv(sysline=)
  15235. setnv(usrline=)
  15236. setnv(curx=)
  15237. setnv(cury=)
  15238. loadsub(control\macros\restvars.ctl)
  15239. if (%nv%klc%)=(32165) then setnv(fromssc=1)
  15240.  
  15241. if (%nv%wipmode%)=(1) then return
  15242. setequal(/aresp=)
  15243. if (%nv%restscr%)=(0) then return
  15244. if (%nv%lacrc%)<>(%nv%klc%) then return
  15245. say(&%nv%fcol%&$%nv%bcol%$*)
  15246. len(%nv%er%)
  15247. if (%nv%lfillin%)<>(-1) then back(%aresp%)
  15248. setwrap(%nv%er%)
  15249. if (%nv%lfillin%)=(-1) then setfill(%nv%er%)
  15250. if (%nv%klc%)=(32165) then setwrap()
  15251. setnv(lfillin=)
  15252. setnv(fcol=)
  15253. setnv(bcol=)
  15254. setnv(er=)
  15255. setnv(klc=)
  15256. setequal(/aresp=)
  15257. if (%nv%lacrc%)=(-11691) then goto (mchback)
  15258. if (%nv%lacrc%)=(31220) then say ( |)
  15259. if (%nv%lacrc%)=(-19191) then goto (dispback)
  15260. if (%nv%lacrc%)=(-4563) then goto (dispback)
  15261. if (%nv%lacrc%)=(-26803) then goto (pictback)
  15262. if (%nv%lacrc%)=(-19593) then setwrap()
  15263. if (%nv%lacrc%)=(-3875) then setwrap()
  15264. if (%nv%lacrc%)=(9648) then setwrap()
  15265. if (%nv%lacrc%)=(-23046) then goto (flback)
  15266. if (%nv%lacrc%)=(-30754) then goto (flback)
  15267. if (%nv%lacrc%)=(22345) then goto (flback)
  15268. if (%nv%lacrc%)=(19910) then goto (flback)
  15269. setnv(lastpbans=)
  15270. setnv(params=)
  15271. setnv(lread=)
  15272. if (%nv%lacrc%)=(20767) then goto (gpback)
  15273. setnv(lacrc=)
  15274. setequal(/resp=)
  15275. return(%nv%lastask%(*))
  15276. *flback
  15277. spause(/:screenlen/)
  15278. setwrap()
  15279. setnv(arback=)
  15280. setnv(fromssc=1)
  15281. return
  15282. *pictback
  15283. setnv(lread=)
  15284. setnv(lastpbans=)
  15285. setnv(lacrc=)
  15286. return(%nv%lastask%(%nv%params%))
  15287. *mchback
  15288. setnv(lread=)
  15289. setnv(lacrc=)
  15290. return(%nv%lastask%(%NOENTERMSG%%nv%params%))
  15291. *dispback
  15292. setnv(lacrc=)
  15293. setequal(/sklines=%nv%lread%)
  15294. setnv(a=%var%a)
  15295. addvar(/:screenlen/+-2=a)
  15296. spause(%var%a)
  15297. setequal(a=%nv%a%)
  15298. setnv(a=)
  15299. say ( |)
  15300. setnv(lread=)
  15301. setequal(/lastpbans=%nv%lastpbans%)
  15302. setnv(lastpbans=)
  15303. setwrap()
  15304. return(%nv%lastask%(%noreset%%nv%params%))
  15305. *gpback
  15306. setnv(lacrc=)
  15307. return(%nv%lastask%(.))
  15308.  
  15309. *closeChatLog
  15310.   jump (logSysToDisk)
  15311.   jump (logUsrToDisk)
  15312.   appendto(%nv%logchat%,[Ending chat log at %time% on %date%])
  15313.   setnv(logchat=)
  15314. ret
  15315.  
  15316. *logSysToDisk
  15317. appendto(%NV%logchat%,%NV%sysline%)
  15318. ret
  15319.  
  15320. *logUsrToDisk
  15321.   appendto(%NV%logchat%,%NV%usrline%)
  15322. ret
  15323. QUITSSCCTLτ cursoroff
  15324. if (%nv%logchat%)<>() then
  15325.   jump (closeChatLog)
  15326.   endif
  15327. log(--,Sysop to User Chat Terminated)
  15328. ansigoto(1,23)
  15329. display(display\endchat)
  15330. togsplit
  15331.  
  15332. flushout
  15333. if (%nv%wipe%)=() then goto (dr0)
  15334. setnv(wipe=)
  15335. setnv(wipmode=1)
  15336. setequal(/resp=)
  15337. *dr0
  15338. setnv(norefresh=)
  15339. if (%nv%wipmode%)=(1) then goto (wip0)
  15340. if (%graphics%)=(WIP) then goto (wip0)
  15341. if (%nv%restscr%)=(1) then
  15342.   clearscr
  15343.   setequal(c=1)
  15344.   do
  15345.     inc(c)
  15346.     if (%var%c)=>(%nv%maxrl%) then goto (dn0)
  15347.     setequal(d=nv%scrbuf%var%c%)
  15348.     prc(%%VAR%D)
  15349.     setequal(d=%aresp%)
  15350.     say(%var%d)
  15351.   loop
  15352.   *dn0
  15353.   setequal(d=nv%scrbuf%var%c%)
  15354.   prc(%%var%d)
  15355.   setequal(d=%aresp%)
  15356.   say(%var%d*)
  15357.   kill(%pbtemp%ssc.%node%)
  15358.   if (%GRAPHICS%)<>(ASCII) THEN
  15359.   ansigoto(%NV%SVX%,%NV%SVY%)
  15360.   ENDIF
  15361.   setnv(svx=)
  15362.   setnv(svy=)
  15363.   endif
  15364. *wip0
  15365. setnv(curactive=)
  15366. setnv(logchat=)
  15367. setnv(syscb=0)
  15368. setnv(usrcb=0)
  15369. setnv(SpLine=)
  15370. setnv(sysx=)
  15371. setnv(sysy=)
  15372. setnv(usrx=)
  15373. setnv(usry=)
  15374. setnv(sysline=)
  15375. setnv(usrline=)
  15376. setnv(curx=)
  15377. setnv(cury=)
  15378. loadsub(control\macros\restvars.ctl)
  15379. if (%nv%klc%)=(32165) then setnv(fromssc=1)
  15380. setequal(/aresp=)
  15381. if (%nv%restscr%)=(0) then return
  15382. if (%nv%lacrc%)<>(%nv%klc%) then return
  15383. say(&%nv%fcol%&$%nv%bcol%$*)
  15384. len(%nv%er%)
  15385. if (%nv%lfillin%)<>(-1) then back(%aresp%)
  15386. setwrap(%nv%er%)
  15387. if (%nv%lfillin%)=(-1) then setfill(%nv%er%)
  15388. if (%nv%klc%)=(32165) then setwrap()
  15389. setnv(lfillin=)
  15390. setnv(fcol=)
  15391. setnv(bcol=)
  15392. setnv(er=)
  15393. setnv(klc=)
  15394. setequal(/aresp=)
  15395. if (%nv%lacrc%)=(-11691) then goto (mchback)
  15396. if (%nv%lacrc%)=(31220) then say ( |)
  15397. if (%nv%lacrc%)=(-19191) then goto (dispback)
  15398. if (%nv%lacrc%)=(-4563) then goto (dispback)
  15399. if (%nv%lacrc%)=(-26803) then goto (pictback)
  15400. if (%nv%lacrc%)=(-19593) then setwrap()
  15401. if (%nv%lacrc%)=(-3875) then setwrap()
  15402. if (%nv%lacrc%)=(9648) then setwrap()
  15403. if (%nv%lacrc%)=(-23046) then goto (flback)
  15404. if (%nv%lacrc%)=(-30754) then goto (flback)
  15405. if (%nv%lacrc%)=(22345) then goto (flback)
  15406. if (%nv%lacrc%)=(19910) then goto (flback)
  15407. setnv(lastpbans=)
  15408. setnv(params=)
  15409. setnv(lread=)
  15410. if (%nv%lacrc%)=(20767) then goto (gpback)
  15411. setnv(lacrc=)
  15412. setequal(/resp=)
  15413. return(%nv%lastask%(*))
  15414. *flback
  15415. spause(/:screenlen/)
  15416. setwrap()
  15417. setnv(arback=)
  15418. setnv(fromssc=1)
  15419. return
  15420. *pictback
  15421. setnv(lread=)
  15422. setnv(lastpbans=)
  15423. setnv(lacrc=)
  15424. return(%nv%lastask%(%nv%params%))
  15425. *mchback
  15426. setnv(lread=)
  15427. setnv(lacrc=)
  15428. return(%nv%lastask%(%NOENTERMSG%%nv%params%))
  15429. *dispback
  15430. setnv(lacrc=)
  15431. setequal(/sklines=%nv%lread%)
  15432. setnv(a=%var%a)
  15433. addvar(/:screenlen/+-2=a)
  15434. spause(%var%a)
  15435. setequal(a=%nv%a%)
  15436. setnv(a=)
  15437. say ( |)
  15438. setnv(lread=)
  15439. setequal(/lastpbans=%nv%lastpbans%)
  15440. setnv(lastpbans=)
  15441. setwrap()
  15442. return(%nv%lastask%(%noreset%%nv%params%))
  15443. *gpback
  15444. setnv(lacrc=)
  15445. return(%nv%lastask%(.))
  15446.  
  15447. *closeChatLog
  15448.   jump (logSysToDisk)
  15449.   jump (logUsrToDisk)
  15450.   appendto(%nv%logchat%,[Ending chat log at %time% on %date%])
  15451.   setnv(logchat=)
  15452. ret
  15453.  
  15454. *logSysToDisk
  15455. appendto(%NV%logchat%,SYSOP: %NV%sysline%)
  15456. ret
  15457.  
  15458. *logUsrToDisk
  15459.   appendto(%NV%logchat%,USER: %NV%usrline%)
  15460. ret
  15461. LINECHATCTLD
  15462. setnv(restscr=1)
  15463. if (%restac%)=(FALSE) then setnv(restscr=0)
  15464. *stChat
  15465. setnv(wipe=)
  15466. loadsub(control\exitwip.ctl)
  15467. setnv(fromssc=)
  15468. if (%LACRC%)=(31220) then setequal(/resp=)
  15469. if (%LACRC%)=(15972) then setequal(/resp=)
  15470. setnv(fcol=%FCOL%)
  15471. setnv(bcol=%BCOL%)
  15472. setnv(lastask=%lastask%)
  15473. setnv(lacrc=%LACRC%)
  15474. setnv(klc=%keyloadcrc%)
  15475. setnv(lfillin=%lfillin%)
  15476. setnv(lastpbans=%lastpbans%)
  15477. setnv(lread=%lread%)
  15478. setnv(params=%params%)
  15479. setnv(er=%RESP%)
  15480.  
  15481. loadsub(control\macros\savevars.ctl)
  15482. if (%nv%restscr%)=(1) then
  15483.   SETNV(SVX=%X%)
  15484.   SETNV(SVY=%Y%)
  15485.   captscr(1,23,%PBTEMP%ssc.%NODE%)
  15486.   inpopen(%PBTEMP%ssc.%NODE%)
  15487.   setequal(c=0)
  15488.   setnv(maxrl=0)
  15489.   do
  15490.     fEndIf(dn0)
  15491.     inc(c)
  15492.     inpread
  15493.     setnv(scrbuf%VAR%C=%ARESP%)
  15494.     len(%ARESP%)
  15495.     if (%ARESP%)>(0) then setnv(maxrl=%VAR%C)
  15496.   loop
  15497.   *dn0
  15498.   inpclose
  15499.   endif
  15500. log(--,Sysop to User Chat Initiated)
  15501. requested()
  15502. setnv(curactive=s)
  15503. setnv(logchat=)
  15504. setnv(syscb=0)
  15505. setnv(usrcb=0)
  15506. togsplit
  15507. setequal(a=0)
  15508. ;inpline(%infansi%,1)
  15509. ;setnv(SpLine=%ARESP%)
  15510. ;clearscr
  15511.  
  15512. ;ansigoto(1,12)
  15513. ;ansisay(%NV%spline%)
  15514.  
  15515. setequal(/resp=)
  15516. ;ansigoto(1,1)
  15517. say()
  15518. display(display\chatinit)
  15519. setnv(sysx=%X%)
  15520. setnv(sysy=%Y%)
  15521. setnv(usrx=1)
  15522. setnv(usry=13)
  15523. say(&%sysopcolor%&*)
  15524. setnv(linetxt=)
  15525. setnv(linetxt=)
  15526. setequal(b=[Chat Mode Initiated: [ESC] Exit   [F7]  Log Chat])
  15527. setlen(b=80)
  15528. localwrite(1,25,0,7,%VAR%B)
  15529. jump(setcur)
  15530.  
  15531. *WaitForKey
  15532. DO
  15533.  
  15534. localkey(20)
  15535. ifnottrue(goto(no))
  15536. IF (%NV%CURACTIVE%)<>(s) THEN JUMP(syslSetup)
  15537. ascii2
  15538. setequal(u=%RESP%)
  15539. setequal(/resp=%ARESP%)
  15540. bigif(27:quitchat,13:syscr,8:backsp,127:backsp,-65:chatlog)
  15541. if (%ARESP%)=(-32) then jump (dossetup)
  15542. if (%ARESP%)<(-119) then if (%ARESP%)>(-130) then goto (chatscrs)
  15543. setequal(/resp=%VAR%U)
  15544. syskeycheck
  15545. if (%ARESP%)=(Yes) then goto (sysk)
  15546. say(%RESP%*)
  15547. setnv(linetxt=%NV%linetxt%%RESP%)
  15548. if (%NV%sysx%)>(77) then jump (syswrap)
  15549. *passSysSay
  15550. setnv(curx=%X%)
  15551. setnv(cury=%Y%)
  15552. cursoron
  15553. setnv(sysx=%X%)
  15554.  
  15555. *no
  15556. if (%BAUD%)=(LOCAL) then LOOP
  15557. ccarrier
  15558. if (%ARESP%)=(0) then goto (QuitChat)
  15559.  
  15560. comkey
  15561. ifnottrue(LOOP)
  15562. IF (%NV%CURACTIVE%)=(s) THEN JUMP(usrlSetup)
  15563. ascii2
  15564. if (%ARESP%)=(13) then goto (usrcr)
  15565. if (%ARESP%)=(8) then goto (usrBack)
  15566. if (%ARESP%)=(127) then goto (usrback)
  15567. if (%ARESP%)=(27) then LOOP
  15568. say(%RESP%*)
  15569. setnv(linetxt=%NV%linetxt%%RESP%)
  15570. if (%NV%UsrX%)>(77) then jump (usrwrap)
  15571. *passUsrSay
  15572. setnv(curx=%X%)
  15573. setnv(cury=%Y%)
  15574. cursoron
  15575. setnv(UsrX=%X%)
  15576. LOOP
  15577.  
  15578. *QuitChat
  15579. loadmem(control\macros\quitSSC.ctl)
  15580.  
  15581. *setcur
  15582. setnv(curx=%X%)
  15583. setnv(cury=%Y%)
  15584. cursoron
  15585. ret
  15586.  
  15587. *setpos
  15588. ret
  15589. if (%VAR%A)=(1) then
  15590.   setequal(a=0)
  15591.   if (%NV%curactive%)=(s) then
  15592.   setnv(curx=%NV%sysx%)
  15593.   setnv(cury=%NV%sysy%)
  15594.   ansigoto(%NV%curx%,%NV%cury%)
  15595.   ret
  15596.   endif
  15597.   setnv(curx=%NV%usrx%)
  15598.   setnv(cury=%NV%usry%)
  15599.   ansigoto(%NV%curx%,%NV%cury%)
  15600. endif
  15601.  
  15602. ret
  15603.  
  15604.  
  15605. *togcur
  15606. if (%NV%curactive%)=(s) then
  15607.   setnv(curactive=u)
  15608.   say(&%usercolor%&*)
  15609.   ret
  15610. endif
  15611. setnv(curactive=s)
  15612. say(&%sysopcolor%&*)
  15613. ret
  15614.  
  15615. *syslSetup
  15616. jump(togcur)
  15617. if (%NV%sysx%)<>(%NV%curx%) then setequal(a=1)
  15618. if (%NV%sysy%)<>(%NV%cury%) then setequal(a=1)
  15619. jump(setpos)
  15620. ret
  15621.  
  15622. *usrlSetup
  15623. jump(togcur)
  15624. if (%NV%usrx%)<>(%NV%curx%) then setequal(a=1)
  15625. if (%NV%usry%)<>(%NV%cury%) then setequal(a=1)
  15626. jump(setpos)
  15627. ret
  15628.  
  15629. *newSysLine
  15630. if (%NV%logchat%)<>() then jump(LogSysToDisk)
  15631. linefeed(1)
  15632. ret
  15633. if (%Y%)>(11) then setnv(Syscb=1)
  15634. if (%Y%)>(11) then ansigoto(1,1)
  15635. setnv(sysy=%Y%)
  15636. if (%NV%syscb%)=(0) then ret
  15637. if (%Y%)=(1) then eline(80)
  15638. if (%Y%)>(10) then ret
  15639. comprint(B)
  15640. addvar(%Y%+1=u)
  15641. locgoto(1,%VAR%U)
  15642. eline(80)
  15643. if (%Y%)>(9) then goto (j1s)
  15644. comprint(B)
  15645. addvar(%Y%+1=u)
  15646. locgoto(1,%VAR%U)
  15647. eline(80)
  15648. addvar(%Y%+-1=u)
  15649. locgoto(1,%VAR%U)
  15650. comprint(A)
  15651. *j1s
  15652. addvar(%Y%+-1=u)
  15653. locgoto(1,%VAR%U)
  15654. comprint(A)
  15655. setnv(sysy=%Y%)
  15656. ret
  15657.  
  15658.  
  15659. *newUsrLine
  15660. if (%NV%logchat%)<>() then jump (logUsrtodisk)
  15661. linefeed(1)
  15662. ret
  15663. if (%Y%)>(22) then
  15664.   setnv(Usrcb=1)
  15665.   setequal(f=1)
  15666.   ansigoto(1,13)
  15667.   endif
  15668. if (%NV%usrCb%)=(0) then linefeed(1)
  15669. setnv(UsrY=%Y%)
  15670. if (%NV%Usrcb%)=(0) then ret
  15671. if (%VAR%F)=(0) then linefeed(1)
  15672. setequal(f=0)
  15673. if (%Y%)=(13) then eline(80)
  15674. setnv(usry=%Y%)
  15675. if (%Y%)>(22) then ret
  15676. comprint(B)
  15677. addvar(%Y%+1=u)
  15678. locgoto(1,%VAR%U)
  15679. eline(80)
  15680. if (%Y%)>(21) then goto (j1)
  15681. comprint(B)
  15682. addvar(%Y%+1=u)
  15683. locgoto(1,%VAR%U)
  15684. eline(80)
  15685. addvar(%Y%+-1=u)
  15686. locgoto(1,%VAR%U)
  15687. comprint(A)
  15688. *j1
  15689. addvar(%Y%+-1=u)
  15690. locgoto(1,%VAR%U)
  15691. comprint(A)
  15692. setnv(usry=%Y%)
  15693. ret
  15694.  
  15695. *logSysToDisk
  15696. appendto(%NV%logchat%,%NV%linetxt%)
  15697. ret
  15698.  
  15699. *logUsrToDisk
  15700.   appendto(%NV%logchat%,%NV%linetxt%)
  15701. ret
  15702.  
  15703. *closeChatLog
  15704.   jump (logSysToDisk)
  15705.   jump (logUsrToDisk)
  15706.   appendto(%NV%logchat%,[Ending chat log at %time% on %date%])
  15707.   setnv(logchat=)
  15708. ret
  15709.  
  15710. *backsp
  15711.   len(%NV%linetxt%)
  15712.   addvar(%ARESP%+-1=i)
  15713.   setequal(o=%NV%linetxt%)
  15714.   get(&o,1,%VAR%I)
  15715.   setnv(linetxt=%ARESP%)
  15716.   backsp(1)
  15717.   cursoron
  15718.   goto(passsyssay)
  15719.  
  15720. *usrback
  15721.   len(%NV%linetxt%)
  15722.   addvar(%ARESP%+-1=i)
  15723.   setequal(o=%NV%linetxt%)
  15724.   get(&o,1,%VAR%I)
  15725.   setnv(linetxt=%ARESP%)
  15726.   backsp(1)
  15727.   cursoron
  15728.   goto(passUsrSay)
  15729.  
  15730. *chatscrs
  15731. multvar(%ARESP%*-1=B)
  15732. addvar(%VAR%B+-119=B)
  15733. if (%VAR%B)=(10) then setequal(b=0)
  15734. display(chatscrs\%VAR%B)
  15735. goto(waitforkey)
  15736.  
  15737. *syscr
  15738. jump(newSysLine)
  15739. setnv(linetxt=)
  15740. goto(passSysSay)
  15741.  
  15742. *chatlog
  15743.   if (%NV%logchat%)<>() then
  15744.     setequal(b=[Chat log closed])
  15745.     setlen(b=80)
  15746.     localwrite(1,12,7,1,%VAR%B)
  15747.     jump (closeChatLog)
  15748.     goto(waitforkey)
  15749.   endif
  15750.   setequal(b=[Now logging to LOGS\CHAT.%NODE%])
  15751.   setlen(b=80)
  15752.   localwrite(1,12,7,1,%VAR%B)
  15753.   setnv(logchat=logs\chat.%NODE%)
  15754.   appendto(%NV%logchat%,-----------------------------------------------------------)
  15755.   appendto(%NV%logchat%,[Logging chat session between %sysop% and %name% on %date% at %time%])
  15756.   goto(waitforkey)
  15757.  
  15758.  
  15759. *syswrap
  15760.   setequal(L=%NV%linetxt%)
  15761.   len(%NV%linetxt%)
  15762.   setequal(z=%ARESP%)
  15763.   rtrim(L)
  15764.   len(%VAR%L)
  15765.   if (%ARESP%)<>(%VAR%Z) then goto (syscr)
  15766.   findr(&l, )
  15767.   setequal(o=%ARESP%)
  15768.   addvar(%VAR%Z+-%var%o=p)
  15769.   back(%var%p)
  15770.   comprint()
  15771.   setequal(y=                                                               )
  15772.   get(&y,1,%var%p)
  15773.   write(%ARESP%)
  15774.   jump(newSysLine)
  15775.   inc(o)
  15776.   get(&l,%var%o,50)
  15777.   say(%ARESP%*)
  15778.   setnv(linetxt=%ARESP%)
  15779. ret
  15780.  
  15781. *usrwrap
  15782.   setequal(l=%NV%linetxt%)
  15783.   len(%NV%linetxt%)
  15784.   setequal(z=%ARESP%)
  15785.   rtrim(l)
  15786.   len(%var%l)
  15787.   if (%ARESP%)<>(%var%z) then goto (usrcr)
  15788.   findr(&l, )
  15789.   setequal(o=%ARESP%)
  15790.   addvar(%var%z+-%var%o=p)
  15791.   back(%var%p)
  15792.   comprint()
  15793.   setequal(y=                                                               )
  15794.   get(&y,1,%var%p)
  15795.   write(%ARESP%)
  15796.   jump(newUsrLine)
  15797.   inc(o)
  15798.   get(&l,%var%o,50)
  15799.   say(%ARESP%*)
  15800.   setnv(linetxt=%ARESP%)
  15801. ret
  15802.  
  15803.   *UsrCr
  15804.   jump(newUsrLine)
  15805.   setnv(linetxt=)
  15806.   goto(passUsrSay)
  15807.  
  15808.   *dossetup
  15809.   ;setnv(curx=0)
  15810.   ;ansigoto(1,12)
  15811.   ret
  15812.  
  15813. *SysK
  15814.   setnv(curactive=u)
  15815.   jump(syslSetup)
  15816.   LOOP
  15817.  
  15818. *noRest
  15819. setnv(restscr=0)
  15820. goto(stchat)
  15821. SSCCTL╠setnv(ArBack=%aresp%)
  15822. if (%graphics%)=(ASCII) then loadmem(control\macros\linechat.ctl)
  15823.  
  15824. setnv(restscr=1)
  15825. if (%restac%)=(FALSE) then setnv(restscr=0)
  15826. *stChat
  15827. setnv(wipe=)
  15828. loadsub(control\exitwip.ctl)
  15829. setnv(fromssc=)
  15830. if (%LACRC%)=(31220) then setequal(/resp=)
  15831. if (%LACRC%)=(15972) then setequal(/resp=)
  15832. setnv(fcol=%FCOL%)
  15833. setnv(bcol=%BCOL%)
  15834. setnv(lastask=%lastask%)
  15835. setnv(lacrc=%LACRC%)
  15836. setnv(klc=%keyloadcrc%)
  15837. setnv(lfillin=%lfillin%)
  15838. setnv(lastpbans=%lastpbans%)
  15839. setnv(lread=%lread%)
  15840. setnv(params=%params%)
  15841. setnv(er=%RESP%)
  15842.  
  15843. loadsub(control\macros\savevars.ctl)
  15844. if (%nv%restscr%)=(1) then
  15845.   setnv(svX=%X%)
  15846.   setnv(svY=%Y%)
  15847.   captscr(1,23,%PBTEMP%ssc.%NODE%)
  15848.   inpopen(%PBTEMP%ssc.%NODE%)
  15849.   setequal(c=0)
  15850.   setnv(maxrl=0)
  15851.   do
  15852.     fEndIf(dn0)
  15853.     inc(c)
  15854.     inpread
  15855.     setnv(scrbuf%VAR%C=%ARESP%)
  15856.     len(%ARESP%)
  15857.     if (%ARESP%)>(0) then setnv(maxrl=%VAR%C)
  15858.   loop
  15859.   *dn0
  15860.   inpclose
  15861.   endif
  15862. log(--,Sysop to User Chat Initiated)
  15863. requested()
  15864. setnv(curactive=s)
  15865. setnv(logchat=)
  15866. setnv(syscb=0)
  15867. setnv(usrcb=0)
  15868. togsplit
  15869. setequal(a=0)
  15870. inpline(%infansi%,1)
  15871. setnv(SpLine=%ARESP%)
  15872. clearscr
  15873.  
  15874. ansigoto(1,12)
  15875. ansisay(%NV%spline%)
  15876.  
  15877. setequal(/resp=)
  15878. ansigoto(1,1)
  15879. display(display\chatinit)
  15880. setnv(sysx=%X%)
  15881. setnv(sysy=%Y%)
  15882. setnv(usrx=1)
  15883. setnv(usry=13)
  15884. say(&%sysopcolor%&*)
  15885. setnv(sysline=)
  15886. setnv(usrline=)
  15887. setequal(b=[Chat Mode Initiated: [ESC] Exit   [F7]  Log Chat])
  15888. setlen(b=80)
  15889. localwrite(1,25,0,7,%VAR%B)
  15890. jump(setcur)
  15891.  
  15892. *WaitForKey
  15893. DO
  15894.  
  15895. localkey(20)
  15896. ifnottrue(goto(no))
  15897. IF (%NV%CURACTIVE%)<>(s) THEN JUMP(syslSetup)
  15898. ascii2
  15899. setequal(u=%RESP%)
  15900. setequal(/resp=%ARESP%)
  15901. bigif(27:quitchat,13:syscr,8:backsp,127:backsp,-65:chatlog)
  15902. if (%ARESP%)=(-32) then jump (dossetup)
  15903. if (%ARESP%)<(-119) then if (%ARESP%)>(-130) then goto (chatscrs)
  15904. setequal(/resp=%VAR%U)
  15905. syskeycheck
  15906. if (%ARESP%)=(Yes) then goto (sysk)
  15907. say(%RESP%*)
  15908. setnv(sysline=%NV%sysline%%RESP%)
  15909. if (%NV%sysx%)>(77) then jump (syswrap)
  15910. *passSysSay
  15911. setnv(curx=%X%)
  15912. setnv(cury=%Y%)
  15913. cursoron
  15914. setnv(sysx=%X%)
  15915.  
  15916. *no
  15917. if (%BAUD%)=(LOCAL) then LOOP
  15918. ccarrier
  15919. if (%ARESP%)=(0) then goto (QuitChat)
  15920.  
  15921. comkey
  15922. ifnottrue(LOOP)
  15923. IF (%NV%CURACTIVE%)=(s) THEN JUMP(usrlSetup)
  15924. ascii2
  15925. if (%ARESP%)=(13) then goto (usrcr)
  15926. if (%ARESP%)=(8) then goto (usrBack)
  15927. if (%ARESP%)=(127) then goto (usrback)
  15928. if (%ARESP%)=(27) then LOOP
  15929. say(%RESP%*)
  15930. setnv(UsrLine=%NV%UsrLine%%RESP%)
  15931. if (%NV%UsrX%)>(77) then jump (usrwrap)
  15932. *passUsrSay
  15933. setnv(curx=%X%)
  15934. setnv(cury=%Y%)
  15935. cursoron
  15936. setnv(UsrX=%X%)
  15937. LOOP
  15938.  
  15939. *QuitChat
  15940. loadmem(control\macros\quitSSC.ctl)
  15941.  
  15942. *setcur
  15943. setnv(curx=%X%)
  15944. setnv(cury=%Y%)
  15945. cursoron
  15946. ret
  15947.  
  15948. *setpos
  15949. if (%VAR%A)=(1) then
  15950.   setequal(a=0)
  15951.   if (%NV%curactive%)=(s) then
  15952.   setnv(curx=%NV%sysx%)
  15953.   setnv(cury=%NV%sysy%)
  15954.   ansigoto(%NV%curx%,%NV%cury%)
  15955.   ret
  15956.   endif
  15957.   setnv(curx=%NV%usrx%)
  15958.   setnv(cury=%NV%usry%)
  15959.   ansigoto(%NV%curx%,%NV%cury%)
  15960. endif
  15961.  
  15962. ret
  15963.  
  15964.  
  15965. *togcur
  15966. if (%NV%curactive%)=(s) then
  15967.   setnv(curactive=u)
  15968.   say(&%usercolor%&*)
  15969.   ret
  15970. endif
  15971. setnv(curactive=s)
  15972. say(&%sysopcolor%&*)
  15973. ret
  15974.  
  15975. *syslSetup
  15976. jump(togcur)
  15977. if (%NV%sysx%)<>(%NV%curx%) then setequal(a=1)
  15978. if (%NV%sysy%)<>(%NV%cury%) then setequal(a=1)
  15979. jump(setpos)
  15980. ret
  15981.  
  15982. *usrlSetup
  15983. jump(togcur)
  15984. if (%NV%usrx%)<>(%NV%curx%) then setequal(a=1)
  15985. if (%NV%usry%)<>(%NV%cury%) then setequal(a=1)
  15986. jump(setpos)
  15987. ret
  15988.  
  15989. *newSysLine
  15990. if (%NV%logchat%)<>() then jump(LogSysToDisk)
  15991. linefeed(1)
  15992. if (%Y%)>(11) then setnv(Syscb=1)
  15993. if (%Y%)>(11) then ansigoto(1,1)
  15994. setnv(sysy=%Y%)
  15995. if (%NV%syscb%)=(0) then ret
  15996. if (%Y%)=(1) then eline(80)
  15997. if (%Y%)>(10) then ret
  15998. comprint(B)
  15999. addvar(%Y%+1=u)
  16000. locgoto(1,%VAR%U)
  16001. eline(80)
  16002. if (%Y%)>(9) then goto (j1s)
  16003. comprint(B)
  16004. addvar(%Y%+1=u)
  16005. locgoto(1,%VAR%U)
  16006. eline(80)
  16007. addvar(%Y%+-1=u)
  16008. locgoto(1,%VAR%U)
  16009. comprint(A)
  16010. *j1s
  16011. addvar(%Y%+-1=u)
  16012. locgoto(1,%VAR%U)
  16013. comprint(A)
  16014. setnv(sysy=%Y%)
  16015. ret
  16016.  
  16017.  
  16018. *newUsrLine
  16019. if (%NV%logchat%)<>() then jump (logUsrtodisk)
  16020. ;linefeed(1)
  16021. if (%Y%)>(22) then
  16022.   setnv(Usrcb=1)
  16023.   setequal(f=1)
  16024.   ansigoto(1,13)
  16025.   endif
  16026. if (%NV%usrCb%)=(0) then linefeed(1)
  16027. setnv(UsrY=%Y%)
  16028. if (%NV%Usrcb%)=(0) then ret
  16029. if (%VAR%F)=(0) then linefeed(1)
  16030. setequal(f=0)
  16031. if (%Y%)=(13) then eline(80)
  16032. setnv(usry=%Y%)
  16033. if (%Y%)>(22) then ret
  16034. comprint(B)
  16035. addvar(%Y%+1=u)
  16036. locgoto(1,%VAR%U)
  16037. eline(80)
  16038. if (%Y%)>(21) then goto (j1)
  16039. comprint(B)
  16040. addvar(%Y%+1=u)
  16041. locgoto(1,%VAR%U)
  16042. eline(80)
  16043. addvar(%Y%+-1=u)
  16044. locgoto(1,%VAR%U)
  16045. comprint(A)
  16046. *j1
  16047. addvar(%Y%+-1=u)
  16048. locgoto(1,%VAR%U)
  16049. comprint(A)
  16050. setnv(usry=%Y%)
  16051. ret
  16052.  
  16053. *logSysToDisk
  16054. appendto(%NV%logchat%,SYSOP: %NV%sysline%)
  16055. ret
  16056.  
  16057. *logUsrToDisk
  16058.   appendto(%NV%logchat%,USER: %NV%usrline%)
  16059. ret
  16060.  
  16061. *closeChatLog
  16062.   jump (logSysToDisk)
  16063.   jump (logUsrToDisk)
  16064.   appendto(%NV%logchat%,[Ending chat log at %time% on %date%])
  16065.   setnv(logchat=)
  16066. ret
  16067.  
  16068. *backsp
  16069.   len(%NV%sysline%)
  16070.   addvar(%ARESP%+-1=i)
  16071.   setequal(o=%NV%sysline%)
  16072.   get(&o,1,%VAR%I)
  16073.   setnv(sysline=%ARESP%)
  16074.   backsp(1)
  16075.   cursoron
  16076.   goto(passsyssay)
  16077.  
  16078. *usrback
  16079.   len(%NV%UsrLine%)
  16080.   addvar(%ARESP%+-1=i)
  16081.   setequal(o=%NV%UsrLine%)
  16082.   get(&o,1,%VAR%I)
  16083.   setnv(UsrLine=%ARESP%)
  16084.   backsp(1)
  16085.   cursoron
  16086.   goto(passUsrSay)
  16087.  
  16088. *chatscrs
  16089. multvar(%ARESP%*-1=B)
  16090. addvar(%VAR%B+-119=B)
  16091. if (%VAR%B)=(10) then setequal(b=0)
  16092. display(chatscrs\%VAR%B)
  16093. goto(waitforkey)
  16094.  
  16095. *syscr
  16096. jump(newSysLine)
  16097. setnv(sysline=)
  16098. goto(passSysSay)
  16099.  
  16100. *chatlog
  16101. loadsub(control\macros\chatlog.ctl)
  16102.   goto(waitforkey)
  16103.  
  16104. *syswrap
  16105.   setequal(L=%NV%sysline%)
  16106.   len(%NV%sysline%)
  16107.   setequal(z=%ARESP%)
  16108.   rtrim(L)
  16109.   len(%VAR%L)
  16110.   if (%ARESP%)<>(%VAR%Z) then goto (syscr)
  16111.   findr(&l, )
  16112.   setequal(o=%ARESP%)
  16113.   addvar(%VAR%Z+-%var%o=p)
  16114.   back(%var%p)
  16115.   comprint()
  16116.   setequal(y=                                                               )
  16117.   get(&y,1,%var%p)
  16118.   write(%ARESP%)
  16119.   jump(newSysLine)
  16120.   inc(o)
  16121.   get(&l,%var%o,50)
  16122.   say(%ARESP%*)
  16123.   setnv(sysline=%ARESP%)
  16124. ret
  16125.  
  16126. *usrwrap
  16127.   setequal(l=%NV%UsrLine%)
  16128.   len(%NV%UsrLine%)
  16129.   setequal(z=%ARESP%)
  16130.   rtrim(l)
  16131.   len(%var%l)
  16132.   if (%ARESP%)<>(%var%z) then goto (usrcr)
  16133.   findr(&l, )
  16134.   setequal(o=%ARESP%)
  16135.   addvar(%var%z+-%var%o=p)
  16136.   back(%var%p)
  16137.   comprint()
  16138.   setequal(y=                                                               )
  16139.   get(&y,1,%var%p)
  16140.   write(%ARESP%)
  16141.   jump(newUsrLine)
  16142.   inc(o)
  16143.   get(&l,%var%o,50)
  16144.   say(%ARESP%*)
  16145.   setnv(UsrLine=%ARESP%)
  16146. ret
  16147.  
  16148.   *UsrCr
  16149.   jump(newUsrLine)
  16150.   setnv(usrline=)
  16151.   goto(passUsrSay)
  16152.  
  16153.   *dossetup
  16154.   setnv(curx=0)
  16155.   ansigoto(1,12)
  16156.   ret
  16157.  
  16158. *SysK
  16159.   setnv(curactive=u)
  16160.   jump(syslSetup)
  16161.   LOOP
  16162.  
  16163. *noRest
  16164. setnv(restscr=0)
  16165. goto(stchat)
  16166. CHANGEUCTLb;IF(/:SEC/)=(100) then goto (sysv)
  16167. delimit( ,;)
  16168.  
  16169. ListFile(areas\fau/:LASTMSG/)
  16170. ;upload areas are AREAS\FAU%VAR%B
  16171.  
  16172. ;---PowerStak Block 1
  16173. len(%nv%queue%)
  16174. notif (%aresp%) = (0) then 
  16175.         setequal(/resp=%nv%queue%)       
  16176.         goto(stk) ;If something in the stack then...
  16177. endif
  16178. ;---PowerStak Block 1 End---
  16179.  
  16180. NotIf(%FAREA%)=(AREAS\FAU/:LASTMSG/) then
  16181.   Display(display\nofareas)
  16182.   Enter
  16183.  endif
  16184. display(%FAREA%)
  16185. Say(&CR&&12&Please note that other conferences may have different upload areas.)
  16186. *bkh
  16187. MenuAsk(&CR&&3&Which upload area would you like?&12&: &15&*)
  16188. ;---PowerStak Block 2
  16189.  
  16190. *stk
  16191. setequal(a=%resp%)
  16192. DEQUEUE(a)
  16193. setequal(/nvqueue=%var%a)
  16194. setequal(/resp=%aresp%)
  16195. ;---PowerStak Block 2 End---
  16196. If (%RESP%)=() then Setequal(/resp=1)
  16197. *sa
  16198.  number(%resp%)
  16199.  ifnottrue(return)
  16200.  CmpValo(%MAXFAREA%,%RESP%)
  16201.  IfTrue(goto (bds))
  16202.  SelFarea(%RESP%)
  16203.  CmpVal(%sec%,%FILSEC%)
  16204.  IfTrue(goto (nofs))
  16205.  SetEqual(/LASTUP=%RESP%)
  16206.  if (%CD%)=(Yes) then display(%CDPath%/:lastdown/\welc)
  16207.  if (%CD%)=(No) then Display(%FILPATH%welc)
  16208.  Say(&CR&&11&Area #%RESP%: &15&%FILNAME% &11&is now selected!&CR&)
  16209.  log(--,Changed to %FILNAME% upload area)
  16210. ; Say(&15&Would you like to list this area? (&12&Y&15&/&12&N&15&)&14&*)
  16211. ; Back(4)
  16212. ; YesNoAsk()
  16213. ; If (%RESP%)=(Yes) Then loadsub(control\macros\flist.ctl)
  16214. Return
  16215. *bds
  16216. loadsub(control\macros\badsel.ctl)
  16217. ;Clear Stack on Error!
  16218. ;---PowerStak Block 3
  16219. setequal(/nvqueue=)
  16220. ;---PowerStak Block 3 End
  16221. Return
  16222. *nofs
  16223. display(display\NOFSEC)
  16224. selfarea(/:lastdown/)
  16225. return
  16226.  
  16227. *sysv
  16228. seek(%FAREA%.100)
  16229. iftrue(view(%FAREA%.100))
  16230. ifnottrue(display(%FAREA%))
  16231. goto (bkh)
  16232. DPKTCTL%loadsub(control\exitwip.ctl)
  16233. Zap(%pbtemp%confhis.%node%)
  16234. setequal(p=0)
  16235. freespace(%CDRIVE%:)
  16236. if (%ARESP%)<(%MINSPACE%) then loadmem (control\macros\nospace.ctl)
  16237. setactivity(Downloading Mail)
  16238. setnv(nonew=N)
  16239. if (%qwknonew%)<>() then setnv(nonew=%qwknonew%)
  16240. setequal(a=%nvnonew%)
  16241. get(&a,1,1)
  16242. setequal(a=%aresp%)
  16243. upcase(a)
  16244. setnv(nonew=%var%a)
  16245. setnv(nobull=N)
  16246. if (%qwknobull%)<>() then setnv(nobull=%qwknobull%)
  16247. setequal(a=%nv%nobull%)
  16248. get(&a,1,1)
  16249. setequal(a=%aresp%)
  16250. upcase(a)
  16251. setnv(nobull=%var%a)
  16252. setnv(ID=NUIQ)
  16253. if (%qwkid%)<>() then setnv(ID=%qwkid%)
  16254. setnv(LOCALDIR=C:\KING)
  16255. if (%qwkLocalDir%)<>() then setnv(localdir=%qwklocaldir%)
  16256. if (%nv%localdir%)=() then goto (nol)
  16257. len(%nv%localdir%)
  16258. get(%nv%localdir%,%aresp%,1)
  16259. if (%aresp%)<>(\) then goto (nol)
  16260. len(%nv%localdir%)
  16261. addvar(%aresp%+-1=a)
  16262. get(%nv%localdir%,1,%var%a)
  16263. setnv(localdir=%aresp%)
  16264. *nol
  16265. mkdir(%PBTEMP%QWKWORK)
  16266. KILL(%PBTEMP%QWKWORK\*.*)
  16267. clearscr
  16268. setnv(qwkattaches=%qwkattaches%)
  16269. if (%nv%qwkattaches%)=() then goto (noqa)
  16270. get(%nv%qwkattaches%,1,1)
  16271. setequal(a=%aresp%)
  16272. upcase(a)
  16273. setnv(qwkattaches=%var%a)
  16274. *noqa
  16275. setnv(qwklim=%qwkconflimit%)
  16276. if (%qwkconflimit%)=() then setnv(qwklim=200)
  16277. zap(%PBTEMP%qwkconf)
  16278. zap(%PBTEMP%QWKWORK\DOOR.ID,DOOR = Powerboard)
  16279. appendto(%PBTEMP%qwkwork\door.id,VERSION = %VER%)
  16280. appendto(%PBTEMP%qwkwork\door.id,SYSTEM = Powerboard BBS %ver%)
  16281. appendto(%PBTEMP%qwkwork\door.id,CONTROLNAME = Powerboard)
  16282. appendto(%PBTEMP%qwkwork\door.id,CONTROLTYPE = ADD)
  16283. appendto(%PBTEMP%qwkwork\door.id,CONTROLTYPE = DROP)
  16284. appendto(%PBTEMP%qwkwork\door.id,CONTROLTYPE = RESET)
  16285. Say(&14&%date% %time% Building .QWK mail packet for %NAME%)
  16286. ZAP(%PBTEMP%qwkwork\control.dat,%BBS%)
  16287. appendto(%PBTEMP%qwkwork\control.dat,)
  16288. appendto(%PBTEMP%qwkwork\control.dat,)
  16289. appendto(%PBTEMP%qwkwork\control.dat,%SYSOP%, Sysop)
  16290. appendto(%PBTEMP%qwkwork\control.dat,29999,%NV%ID%)
  16291. Say(&14&)
  16292. get(%date%,1,6)
  16293. setequal(a=%aresp%19)
  16294. get(%date%,7,2)
  16295. setequal(a=%var%a%aresp%)
  16296. appendto(%PBTEMP%qwkwork\control.dat,%var%a,%time%:00)
  16297. setequal(a=%name%)
  16298. upcase(a)
  16299. appendto(%PBTEMP%qwkwork\control.dat,%var%a)
  16300. appendto(%PBTEMP%qwkwork\control.dat,)
  16301. appendto(%PBTEMP%qwkwork\control.dat,0)
  16302. appendto(%PBTEMP%qwkwork\control.dat,0)
  16303. appendto(%PBTEMP%qwkwork\control.dat,%maxarea%)
  16304. setequal(w=0)
  16305. do
  16306. inc(w)
  16307. appendto(%PBTEMP%qwkwork\control.dat,%var%w)
  16308. msgname(%var%w)
  16309. setequal(a=%aresp%)
  16310. get(&a,1,60);10
  16311. appendto(%PBTEMP%qwkwork\control.dat,%aresp%)
  16312. if (&W)<>(%maxarea%) then loop
  16313.  
  16314. Say(&15&Scanning Conferences...                             &10&Press CTRL-K to Quit Scan)
  16315. Say()
  16316. fcopy(display\welcome.ans,%PBTEMP%qwkwork\welcome)
  16317. if (%graphics%)=(ASCII) then fcopy(display\welcome.asc,%PBTEMP%qwkwork\welcome)
  16318. fcopy(display\goodbye.ans,%PBTEMP%qwkwork\goodbye)
  16319. if (%graphics%)=(ASCII) then fcopy(display\goodbye.asc,%PBTEMP%qwkwork\goodbye)
  16320.  
  16321. Say(&11&Conference                            High Msg     High Read   Sending&CR&)
  16322. setequal(a=Produced by Qmail...Copyright (c) 1987 by Sparkware.  All Rights Reserved       Above for Compatibility with Qmail)
  16323. fwrite(%PBTEMP%qwkwork\messages.dat,1,128,a)
  16324. setequal(x=129)
  16325.  
  16326. setequal(w=0)
  16327. do
  16328.  
  16329. freespace(%CDRIVE%:)
  16330. if (%ARESP%)<(%MINSPACE%) then loadmem (control\macros\nospace.ctl)
  16331.  
  16332. inc(w)
  16333. if (%var%w)>(%maxarea%) then goto (done0)
  16334. selarea(%var%w)
  16335. enufsec(%areasec%)
  16336. ifnottrue(goto(nxarea))
  16337. if (%msgiscan%)=(Y) then goto (psc)
  16338. getf
  16339. ifnottrue(goto(nxarea))
  16340.  
  16341. *psc
  16342. msghigh(0)
  16343. appendto(%pbtemp%confhis.%node%,%aresp%)
  16344. setequal(u=)
  16345. setequal(a=%areaname%)
  16346. setlen(a=41)
  16347. Say(&7&%var%a*)
  16348. himsg(%var%w)
  16349. setequal(f=%ARESP%)
  16350. setequal(g=%aresp%)
  16351. setlen(g=11)
  16352. Say(&12&%var%g*)
  16353. msghigh(%var%w)
  16354. setequal(/nvh=%aresp%)
  16355. setequal(y=%ARESP%)
  16356. setequal(g=%aresp%)
  16357. lowmsg
  16358. if (%var%y)<(%aresp%) then setequal(y=%aresp%)
  16359. inc(Y)
  16360. setlen(g=12)
  16361. Say(%var%g&15&*)
  16362. setequal(a=0)
  16363.  
  16364. *st
  16365. jump (twirl)
  16366. GETMAIL(%VAR%Y,%var%w,1,T)
  16367. IF (%MSGNUMBER%)=(0) THEN GOTO(LP)
  16368. IF(%ARESP%)<>(Yes) THEN GOTO(LP)
  16369. setequal(b=%NAME%)
  16370. upcase(b)
  16371. if (&B)=(%MSGFROM%) then goto (lp)
  16372. if (/:FLAG03)=(Y) then if (%MSGTO%)<>(&B) then goto (LP)
  16373. enufsec(%syssec%)
  16374. iftrue(goto(ska))
  16375. if (%MSGPVT%)=(PRIVATE) then if (%MSGTO%)<>(&B) then goto (LP)
  16376. *ska
  16377. setequal(b=%msgbytes%)
  16378. if (%MSGBYTES%)=(0) then goto (LP)
  16379. inc(b)
  16380. setequal(/nvb=%var%b)
  16381. if (%MSGPVT%)=(NOT PRIVATE) then if (%MSGRCVD%)=(NOT RECEIVED) then setequal(z= )
  16382. if (%MSGPVT%)=(NOT PRIVATE) then if (%MSGRCVD%)=(RECEIVED) then setequal(z=-)
  16383. if (%MSGPVT%)=(PRIVATE) then setequal(z=*)
  16384. if (%MSGTO%)=(%SYSOPC%) then if (%MSGPVT%)=(PRIVATE) then if (%VAR%W)=(1) then if (%MSGRCVD%)=(NOT RECEIVEED) then setequal(z=~)
  16385. if (%MSGTO%)=(%SYSOPC%) then if (%MSGPVT%)=(PRIVATE) then if (%VAR%W)=(1) then if (%MSGRCVD%)=(RECEIVEED) then setequal(z=`)
  16386. setequal(b=%msgnumber%)
  16387. setlen(b=7)
  16388. setequal(c=%msgto%)
  16389. setlen(c=25)
  16390. setequal(d=%msgfrom%)
  16391. setlen(d=25)
  16392. setequal(e=%msgdesc%)
  16393. setlen(e=25)
  16394. setnv(attline=)
  16395. if (%nv%qwkattaches%)=(Y) then
  16396. if (%MSGATTACH%)=(Y) then
  16397.   if (%storedext%)=() then fcopy(%attpat%%attn0%.%attext%,%pbtemp%qwkwork\%msgattname%)
  16398.   if (%storedext%)<>() then fcopy(%attpat%%attn0%.%storedext%,%pbtemp%qwkwork\%msgattname%)
  16399.   setnv(attline=File Attached: %MSGATTNAME% ()
  16400.   If(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%ATTEXT%)
  16401.   NotIf(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%STOREDEXT%)
  16402.   setnv(attline=%nv%attline% %aresp% bytes -- Time to download: )
  16403.   TTime(%ARESP%)
  16404.   setnv(attline=%nv%attline% %aresp%))
  16405.   appendto(%pbtemp%qwkwork\attaches,#%msgnumber% %msgto% %msgfrom% %msgdesc%)
  16406.   appendto(%pbtemp%qwkwork\attaches,%nv%attline%)
  16407.  endif
  16408. endif
  16409. setequal(g=%msgprev%)
  16410. setlen(g=8)
  16411. divvar(%nv%b%/128=h)
  16412. inc(h)
  16413. mod(%nv%b%,128)
  16414. setequal(r=%aresp%)
  16415. if (%var%r)=(0) then setequal(r=128)
  16416. addvar(%var%r+-1=r)
  16417. if (%aresp%)<>(0) then inc(h)
  16418. setequal(i=%var%h)
  16419. setlen(i=6)
  16420. get(%msgsntd%,1,6)
  16421. setequal(q=%aresp%)
  16422. get(%msgsntd%,9,2)
  16423. setequal(q=%var%q%aresp%)
  16424. mki(%var%w)
  16425. setequal(z=%var%z%var%b%var%q%msgsntt%%var%c%var%d%var%e            %var%g%var%iß%aresp%   )
  16426. fwrite(%PBTEMP%qwkwork\messages.dat,%var%x,128,z)
  16427. addvar(%var%x+128=x)
  16428. divvar(%var%x/128=v)
  16429. mksmbf(%var%v)
  16430. setequal(v=%aresp%)
  16431. chr(%var%w)
  16432. setequal(v=%var%v%aresp%)
  16433. setequal(m=%NAME%)
  16434. upcase(M)
  16435. if (%MSGTO%)=(&M) then appendtoN(%PBTEMP%qwkwork\personal.ndx,%var%v)
  16436. setequal(u=%var%u%var%v)
  16437. fsetloc (%txhand%,%msgstart%)
  16438. setequal(l=128)
  16439. setequal(m=0)
  16440. setequal(o=0)
  16441. addvar(%var%h+-1=h)
  16442. *again
  16443. inc(o)
  16444. if (&o)=>(&h) then setequal(l=%var%r)
  16445. fget(%txhand%,%var%l,q)
  16446. seekrep(q,141,227)
  16447. if (&o)=(&h) then setequal(q=%var%qπ)
  16448. fwrite(%PBTEMP%qwkwork\messages.dat,%var%x,128,q)
  16449. if (%var%l)<(1) then goto (lp)
  16450. addvar(%var%m+%var%l=m)
  16451. addvar(%var%x+128=x)
  16452. if (&m)<(%NV%B%) then goto (again)
  16453. inc(a)
  16454. if (%nv%qwklim%)>(0) then
  16455.   if (%var%a)=>(%nv%qwklim%) then goto (back)
  16456. endif
  16457. *LP
  16458. INC(Y)
  16459. cmpval(%var%f,%var%y)
  16460. iftrue(goto(back))
  16461. goto (st)
  16462. *back
  16463. Say(%var%a*)
  16464. if (%nv%qwklim%)>(0) then
  16465.   if (%var%a)=>(%nv%qwklim%) then say( [Over Limit]*)
  16466. endif
  16467. say()
  16468. sethigh(%nv%h%)
  16469. appendto(%PBTEMP%qwkconf,%var%w)
  16470. if (&a)=(0) then goto (nxarea)
  16471. len(%var%w)
  16472. if (%aresp%)=(1) then setequal(w=00%var%w)
  16473. if (%aresp%)=(2) then setequal(w=0%var%w)
  16474. appendtoN(%PBTEMP%qwkwork\%var%w.NDX,%var%u)
  16475.  
  16476. *nxarea
  16477. ifkey( )
  16478. iftrue(goto(done0))
  16479. localkey(1)
  16480. if(%ARESP%)=( ) then goto (done0)
  16481. ;setactivity(Area %VAR%W; Max Area %MAXAREA%)
  16482. if (%VAR%W)=(0%MAXAREA%) then goto(done0)
  16483. if (&w)<>(%MAXAREA%) then loop
  16484.  
  16485. *done0
  16486. selarea(/:lastmsg/)
  16487. Setequal(a=&CR&&15&Would you like to download this packet?)
  16488. loadsub(control\yesno.ctl)
  16489. if (%RESP%)=(No) then goto (gb)
  16490.  
  16491. Say()
  16492.  
  16493. if (%nv%nonew%)=(N) then
  16494.   if (/:FLAG04/)<>(Y) then loadsub(control\macros\qwknew.ctl)
  16495.   endif
  16496. if (%nv%nobull%)=(N) then loadsub(control\macros\qwkbull.ctl)
  16497.  
  16498. Say(&CR&&12& Compressing .QWK Mail Packet, please wait... *)
  16499. exec(pkzip %PBTEMP%qwkwork\%NV%ID%.QWK %PBTEMP%qwkwork\*.*)
  16500. Say(&12&Done!&CR&)
  16501. If (%LOCAL%)=(TRUE) then
  16502.         Say(&14&Local transfer, sending to %NV%LOCALDIR%!)
  16503.         fcopy(%PBTEMP%qwkwork\%NV%ID%.qwk,%NV%LOCALDIR%\%NV%ID%.qwk)
  16504.         Goto(succ)
  16505.         endif
  16506. *selp
  16507. display(display\qwkprot)
  16508. ;Say(&3&(&11&Y&3&) Y-Modem)
  16509. ;Say(&3&(&11&Z&3&) Z-Modem)
  16510. MenuAsk(%MIN%1%&15&Protocol to use? (Q=Quit)&12&: &14&*)
  16511. if (%RESP%)=(Q) then goto(gb)
  16512. find(%RESP%,\)
  16513. iftrue(goto(gb))
  16514. len(%RESP%)
  16515. find(%resp%,**)
  16516. iftrue(setequal(/resp=Z))
  16517. if (%ARESP%)<>(1) then goto (selp)
  16518.  
  16519. setequal(a=%resp%)
  16520.  
  16521. Say(&CR&&11&Now sending %NV%ID%.QWK.  Please get ready to receive the file now.&CR&)
  16522.  
  16523. fixfile(protocol\%resp%-qwk.BT,%PBTEMP%qwkd.BAT)
  16524. exec(%PBTEMP%qwkd.BAT│)
  16525. eline(79)
  16526. if (%ARESP%)<>(0) then goto (gb)
  16527. *succ
  16528. Say(&CR&&15&Transfer successful.&CR&&CR&&11&Please wait, now updating message pointers... *)
  16529. inpopen(%PBTEMP%qwkconf)
  16530. *st00
  16531. fendif(over)
  16532. inpread
  16533. setequal(w=%aresp%)
  16534. selarea(%aresp%)
  16535. himsg(%var%w)
  16536. sethigh(%aresp%)
  16537. goto(st00)
  16538. *over
  16539. Say(&11&Done!&CR&)
  16540. size(%PBTEMP%qwkwork\%nv%id%.qwk)
  16541. kill(%pbtemp%qwkconf)
  16542. log(--,Downloaded a %aresp% byte mail packet.)
  16543. goto (dn0)
  16544.  
  16545. *gb
  16546. loadsub(control\macros\dpkt2.ctl)
  16547.  
  16548. *dn0
  16549. KILL(%PBTEMP%QWKWORK\*.*)
  16550. selarea(/:lastmsg/)
  16551. if (%nv%wipe%)=() then return
  16552. setnv(wipe=)
  16553. setnv(wipmode=1)
  16554. return
  16555.  
  16556. *twirl
  16557. INC(P)
  16558. if (%VAR%P)>(8) then setequal(P=1)
  16559. if (%VAR%P)=(1) then say(-*)
  16560. if (%VAR%P)=(2) then say(\*)
  16561. if (%VAR%P)=(3) then say(|*)
  16562. if (%VAR%P)=(4) then say(/*)
  16563. if (%VAR%P)=(5) then say(-*)
  16564. if (%VAR%P)=(6) then say(\*)
  16565. if (%VAR%P)=(7) then say(|*)
  16566. if (%VAR%P)=(8) then say(/*)
  16567. back(1)
  16568. ret
  16569. SHOWMSGCTLZ!*AGMail
  16570. getmail(%var%i,,%var%w)
  16571. setequal(s=0)
  16572. if (%MsgNumber%)=(0) then goto (next)
  16573. setequal(z=10)
  16574. ;notif (%ARESP%)=(Yes) then notif(%ARESP%)=(DELETED) then goto (nope)
  16575. *banyway
  16576. clearscr
  16577. SetEqual(/nvkilled=NO)
  16578. if(%ARESP%)=(DELETED) then SetEqual(/nvkilled=YES)
  16579. setequal(x=0)
  16580. setequal(s=0)
  16581. nicedate(%MSGSNTD%)
  16582. say(&11&Message &3&%MsgNumber%&11& of &3&%var%f&11& was sent on&3& %ARESP%&11& at &3&*)
  16583. nicetime(%MSGSNTT%)
  16584. nicesay(%ARESP%&14&&CR&        Sent by: &3&%MSGFROM%&CR&&14&   Addressed to: &3&%MSGTO% )
  16585. say(&14&      Regarding: &3&%MSGDESC% )
  16586. nicesay(&14&         Status: &3&%MSGPVT%, %MSGRCVD%, Read %MSGRDTIMES% times, %REPLIES%*)
  16587. If(%NV%KILLED%)=(YES) then Say(&3&, &12&DELETED)
  16588. NotIf(%NV%KILLED%)=(YES) then Say()
  16589. spause(8)
  16590. if (%MSGATTACH%)=(Y) then if (%MSGPVT%)=(PRIVATE) then setequal(s=10)
  16591. if (%MSGATTACH%)=(Y) then jump (attroutine)
  16592. if (&s)=(10) then spause(9)
  16593. say(&8&────────────────────────────────────────────────────────────────────────&CR&&7&)
  16594. showtxt
  16595. say()
  16596. *reading
  16597. ;If (&s)=(10) then If (%SEC%)=(100) then Display(display\rdnga100)
  16598. ;If (&s)=(10) then NotIf (%SEC%)=(100) then Display(display\rdnga)
  16599. ;NotIf (&s)=(10) then If (%SEC%)=(100) then Display(display\rdng100)
  16600. ;NotIf (&s)=(10) then NotIf (%SEC%)=(100) then Display(display\rdng)
  16601. NotIF(%NV%KILLED%)=(YES) then If(%SEC%)=(100) then If(%MSGATTACH%)=(Y) then Display(display\inbx100a)
  16602. IF(%NV%KILLED%)=(YES) then If(%SEC%)=(100) then If(%MSGATTACH%)=(Y) then Display(display\inb100ka)
  16603. If(%NV%KILLED%)=(YES) then If(%SEC%)=(100) then NotIf(%MSGATTACH%)=(Y) then Display(display\inbx100k)
  16604. NotIF(%NV%KILLED%)=(YES) then If(%SEC%)=(100) then NotIf(%MSGATTACH%)=(Y) then Display(display\inbox100)
  16605. NotIF(%NV%KILLED%)=(YES) then NotIf(%SEC%)=(100) then If(%MSGATTACH%)=(Y) then Display(display\inboxa)
  16606. IF(%NV%KILLED%)=(YES) then NotIf(%SEC%)=(100) then If(%MSGATTACH%)=(Y) then Display(display\inboxka)
  16607. NotIF(%NV%KILLED%)=(YES) then NotIf(%SEC%)=(100) then NotIf(%MSGATTACH%)=(Y) then Display(display\inbox)
  16608. IF(%NV%KILLED%)=(YES) then NotIf(%SEC%)=(100) then NotIf(%MSGATTACH%)=(Y) then Display(display\inboxk)
  16609. ;say(&15&Options: &3&(&11&N&3&)ext, (&11&Q&3&)uit, (&11&K&3&)ill, (&11&S&3&)how Again, (&11&R&3&)eply, F(&11&o&3&)rward Message,)
  16610. ;say(         (&11&E&3&)dit, (&11&M&3&)ark, (&11&F&3&)orward or (&11&B&3&)ack Thread,*)
  16611. ;if (&s)=(10) then say( (&11&D&3&)ownload Attach,*)
  16612. ;say( (&11&H&3&)elp&CR&)
  16613. jump(getHiLow)
  16614. numbmenuask (%CRON%&15&Which option would you like to do?&12&: &14&*)
  16615. notif(%NV%KILLED%)=(YES) then bignicesay(m:mark,q:quit,r:reply,s:Show again,n:next message,p:previous message,k:kill,o:Forward,h:help,i:inbox,c:compose message)
  16616. if(%NV%KILLED%)=(YES) then bignicesay(m:mark,q:quit,r:reply,s:Show again,n:next message,p:previous message,k:unkill,o:Forward,h:help,i:inbox,c:compose message)
  16617. if (%msgattach%)=(Y) then bignicesay(d:Download Attach)
  16618. If (%SEC%)=(100) then BigNiceSay(u:User Record)
  16619. notif(%NV%KILLED%)=(YES) then bigif (f:flagasnew,m:mark,o:forw,q:qdisp,s:banyway,r:reply,p:previous,k:kill,n:next,h:help2,u:userrec,i:inbox,c:compose)
  16620. if(%NV%KILLED%)=(YES) then bigif (f:flagasnew,m:mark,o:forw,q:qdisp,s:banyway,r:reply,p:previous,k:unkill,n:next,h:help2,u:userrec,i:inbox,c:compose)
  16621. if (%msgattach%)=(Y) then bigif (d:downatt)
  16622. if (%RESP%)=(<CR>) then goto (next)
  16623. ;number(%RESP%)
  16624. ;iftrue (goto (nread))
  16625. setequal(s=5)
  16626. goto (inv2)
  16627.  
  16628. *flagasnew
  16629. MsgSetBit(%MSGNUMBER%,10,0)
  16630. Goto(inbox)
  16631.  
  16632. *mark
  16633. loadsub(control\macros\markmess.ctl)
  16634. SetEqual(/nvstatus=REPEAT)
  16635. ;goto (repeat)
  16636.  
  16637. *help2
  16638. display(display\help\readn,/:SEC/)
  16639. goto (reading)
  16640.  
  16641. *downatt
  16642. zap(%pbtemp%varr.%NODE%,%var%R)
  16643. linefeed(1)
  16644. LoadSub(control\macros\savevars.ctl)
  16645. loadsub(control\DOWNATT.CTL)
  16646. Loadsub(control\macros\restvars.ctl)
  16647. goto (aGMail)
  16648.  
  16649. *forw
  16650. SetNv(i=%VAR%I)
  16651. SetNv(w=%VAR%W)
  16652. loadsub(control\macros\messforw.ctl)
  16653. SetEqual(i=%NV%I%)
  16654. SetEqual(w=%NV%W%)
  16655. SetNv(i=)
  16656. SetNv(w=)
  16657. if (&g)=(1) then goto (inv2)
  16658. ;goto (repeat)
  16659. Goto(agmail)  ; show original message again
  16660.  
  16661. *marked   ; appears to be a useless label
  16662. setequal(w=1)
  16663. setequal(/nvreadtype=1)
  16664. setequal(u=0)
  16665. goto (next)
  16666.  
  16667. *userrec
  16668.  EnufSec(100)
  16669.  IfNotTrue(Goto(inv2))
  16670.  LoadSub(control\macros\savevars.ctl)
  16671.  *WhichOne
  16672.  Say(&CR&&15&Load User Record of person message is Addressed (&12&T&15&)o or Sent (&12&B&15&)y? &14&*)
  16673.  MenuKey(%CRON%*)
  16674.  BigNiceSay(T:To,B:From)
  16675.  BigIf(T:UTo,B:UFrom,<CR>:AGMail)
  16676.  Say(&CR&&12&Invalid selection. Please try again...)
  16677.  Goto(WhichOne)
  16678.  *UTo
  16679.  SetNv(editor=%MSGTO%)
  16680.  Goto(LoadRec)
  16681.  *UFrom
  16682.  SetNv(editor=%MSGFROM%)
  16683.  *LoadRec
  16684.  ClearScr
  16685.  SetEqual(l=1)
  16686.  LoadSub(control\ued1.ctl)
  16687.  LoadSub(control\macros\restvars.ctl)
  16688.  SetEqual(/nveditor=)
  16689.  
  16690.  Goto(AGMAil)
  16691.  
  16692. *rev
  16693. if (&y)=(0) then goto (inv2)
  16694. setequal(y=%var%f)
  16695. setequal(w=-1)
  16696. if (&y)=(0) then goto (inv2)
  16697. goto (repeat)
  16698.  
  16699. *Qdisp
  16700. SetEqual(/nvstatus=INBOX)
  16701. Return
  16702.  
  16703. *Inv2
  16704. ;SetEquaL(/NVSTATUS=INV2)
  16705. ;Return
  16706. if (&s)=(10) then goto (abb)
  16707. say(&CR&&CR&&12&Invalid selection! Please try again...&CR&)
  16708. secpause(1)
  16709. flushout
  16710. Goto(Reading)
  16711.  
  16712. *kill
  16713. SetEqual(/nvme=%VAR%Y)
  16714. SetEqual(y=%MSGNUMBER%)
  16715. loadsub(control\macros\killmess.ctl)
  16716. SetEqual(y=%NV%ME%)
  16717. SetEqual(/nvme=)
  16718. SetEqual(i=%NV%I%)
  16719. ;NotIf(&g)=(0) then SetEqual(^%VAR%i=DELETED)
  16720. Goto(Inbox)
  16721.  
  16722. *Unkill
  16723. LoadSub(Control\macros\unkill.ctl)
  16724. Goto(inbox)
  16725.  
  16726.  
  16727. *Inbox
  16728. SetEqual(/nvstatus=INBOX)
  16729. Return
  16730.  
  16731. *next
  16732. SetEqual(i=%NV%I%)
  16733. Inc(i)
  16734. If(&i)>(%NV%TOTMAX%) then Goto(lastmsg)
  16735. SetEqual(/nvselected=%VAR%I)
  16736. SetEqual(/nvi=%VAR%I)
  16737. Goto(MovingDown)
  16738. ;Goto(SetVars)
  16739.  
  16740. *previous
  16741. SetEqual(i=%NV%I%)
  16742. ;Say(BEFORE I=%VAR%I)
  16743. AddVar(%VAR%I+-1=i)
  16744. ;Say(AFTER I=%VAR%I)
  16745. If(&i)<(1) then Goto(firstmsg)
  16746. SetEqual(/nvselected=%VAR%I)
  16747. SetEqual(/nvi=%VAR%I)
  16748. Goto(MovingUp)
  16749.  
  16750. *SetVars
  16751. ;Say(BEFORE I=%VAR%I)
  16752. SetEqual(i=^:I^)
  16753. ;Say(AFTER I=%VAR%I)
  16754. ;Say(:1=^:1^  :2=^:2^)
  16755. getmail(%var%i,,%var%w)
  16756. ;Say(ARESP from the GetMail(%VAR%I,,%VAR%W)=%ARESP%)
  16757. ;Enter
  16758. Say($0$*)
  16759. Goto(AgMail)
  16760.  
  16761. *getHiLow
  16762. himsg
  16763. setequal(f=%ARESP%)
  16764. lowmsg
  16765. setequal(n=%ARESP%)
  16766. ret
  16767.  
  16768. *firstmsg
  16769. Say(&CR&&12&This is the first message in your INBOX&CR&)
  16770. SecPause(1)
  16771. Inc(i)
  16772. ;SetEqual(i=%NV%I%)
  16773. SetEqual(/nvselected=%VAR%I)
  16774. SetEqual(/nvstart=%VAR%I)
  16775. SetEqual(/nvi=%VAR%I)
  16776.  
  16777. SetEqual(i=^:I^)
  16778. Goto(Inbox)
  16779.  
  16780. ;Goto(SetVars)
  16781.  
  16782. *lastmsg
  16783. Say(&CR&&12&This is the last message in your INBOX&CR&)
  16784. SecPause(1)
  16785. AddVar(%VAR%I+-1=i)
  16786. SetEqual(/nvselected=%VAR%I)
  16787. SetEqual(/nvi=%VAR%I)
  16788.  
  16789. SetEqual(i=^:I^)
  16790. Goto(Inbox)
  16791.  
  16792. ;Goto(SetVars)
  16793.  
  16794. *MovingUp
  16795.   SetEqual(/nvtemp=%NV%SELECTED%)
  16796.   NotIf(%NV%SELECTED%)>=(%NV%START%) then Goto(QuickFix)
  16797. ;  SetEqual(i=%NV%SELECTED%)
  16798. ;  AddVar(%VAR%I+-1=i)
  16799.   SetEqual(/nvselected=%VAR%I)
  16800.   SetEqual(/nvscreen=REFRESH)  
  16801.   SetEqual(i=%NV%SELECTED%)
  16802.   AddVar(%VAR%I+3=q)
  16803.   setequal(y=^:I^)
  16804.   Goto(SetVars)
  16805.  
  16806. *QuickFix
  16807.    ;AddVar(%NV%START%+-1=i)
  16808.    If(&i)<(1) then 
  16809.       SetEqual(i=%NV%TOTMAX%)
  16810.       SetEqual(/nvselected=%VAR%I)
  16811.       Inc(i)
  16812.       AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  16813.       Inc(i)
  16814.       SetEqual(/nvstart=%VAR%I)
  16815.       SetEqual(/nvscreen=NORMAL)
  16816.       Goto(SetVars)
  16817.     endif
  16818.    SetEqual(/nvstart=%VAR%I)
  16819.    SetEqual(/nvscreen=NORMAL)
  16820.    SetEqual(/nvselected=%VAR%I)
  16821.    Goto(SetVars)
  16822.  
  16823. *MovingDown
  16824.   SetEqual(/nvtemp=%NV%SELECTED%)
  16825.   ;SetEqual(i=%NV%SELECTED%)
  16826.  
  16827.   NotIf(&i)<=(%NV%MAX%) then
  16828.     SetEqual(/nvselected=%VAR%I)
  16829.     AddVar(%VAR%I+-%NV%SCREENLEN%=i)
  16830.     Inc(i)
  16831.     Inc(i)
  16832.     SetEqual(/nvstart=%VAR%I)
  16833.     SetEqual(i=%NV%SELECTED%)
  16834.     Goto(SetVars)
  16835.    Endif
  16836.  
  16837.   SetEqual(/nvselected=%VAR%I)
  16838.   SetEqual(/nvscreen=REFRESH)  
  16839.   SetEqual(i=%NV%SELECTED%)
  16840.   AddVar(%VAR%I+3=q)
  16841.   setequal(y=^:I^)
  16842.   Goto(SetVars)
  16843.  
  16844. *reply
  16845. ;SetEqual(/nvnum=%VAR%I)
  16846. loadsub(control\macros\reply.ctl)
  16847. ;SetEqual(i=%NV%NUM%)
  16848. SetEqual(i=%NV%SELECTED%)
  16849. ;Say(i=%VAR%I)
  16850. SetEqual(/nvnum=)
  16851. goto (setvars)
  16852.  
  16853. *compose
  16854. LoadSub(control\macros\savevars.ctl)
  16855. Loadsub(control\macros\enter.ctl)
  16856. LoadSub(control\macros\restvars.ctl)
  16857. Goto (agmail)
  16858.  
  16859. *attroutine
  16860. ;say (&12&* &14&File Attached: &3&%MSGATTNAME%)
  16861.  
  16862.   if (%MSGPVT%)=(PRIVATE) then setequal(s=10)
  16863.   say (&12&* &14&File Attached: &3&%MSGATTNAME% *)
  16864.   If(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%ATTEXT%)
  16865.   NotIf(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%STOREDEXT%)
  16866.   Say((%ARESP% bytes -- *)
  16867.   if (%local%)=(TRUE) then goto (localatt)
  16868.   say(Time to download: *)
  16869.   TTime(%ARESP%)
  16870.   Say(%ARESP%))
  16871. ret
  16872.  
  16873. *localatt
  16874. if (%storedext%)=() then say (Stored in %ATTPAT%%ATTN0%.%ATTEXT%))
  16875. if (%storedext%)<>() then say (Stored in %ATTPAT%%ATTN0%.%STOREDEXT%))
  16876. ret
  16877. KILL2CTLKloadsub(control\exitwip.ctl)
  16878. if (%MULTI%)=(TRUE) then goto (start)
  16879. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  16880. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  16881. say(your Sysop, %SYSOP%.&CR&)
  16882. enter
  16883. goto (doret)
  16884. *start
  16885. loadsub(control\macros\mwho.ctl)
  16886. menuask(%CRON%&CR&&3&Enter number of the &11&node &3&to disconnect (ENTER=Quit)&12&: &15&*)
  16887. if (%resp%)=(<CR>) then goto (doret)
  16888. ;killnode(%resp%)
  16889. *doret
  16890. if (%nv%wipe%)=() then return
  16891. setnv(wipe=)
  16892. setnv(wipmode=1)
  16893. return
  16894. NODED2CTL$loadsub(control\exitwip.ctl)
  16895. if (%MULTI%)=(TRUE) then goto (start)
  16896. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  16897. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  16898. say(your Sysop, %SYSOP%.&CR&)
  16899. enter
  16900. goto (doret)
  16901. *start
  16902. loadsub(control\macros\mwho.ctl)
  16903. menuask(%CRON%&CR&&3&Enter &11&node &3&number to shut down (ENTER=Quit)&12&: &15&*)
  16904. if (%resp%)=(<CR>) then goto (doret)
  16905. ;nodedown(%resp%)
  16906. *doret
  16907. setnv(wipe=)
  16908. setnv(wipmode=1)
  16909. return
  16910. NEWSDATECTL[*date
  16911.  
  16912. Say(&CR&&15&Would you like to use today's date as the article date? (&12&Y&15&/&12&N&15&)&14&*)
  16913. Back(4)
  16914. YesNoAsk(*)
  16915. If(%RESP%)=(Yes) then
  16916.   SetEqual(d=%DATE%)
  16917.   Get(&d,1,2)                      ; converts date from ##-##-## to ##/##/##
  16918.   SetEqual(/nvdate=%ARESP%)
  16919.   Get(&d,4,2)
  16920.   SetEqual(/nvdate=%NV%DATE%/%ARESP%)
  16921.   Get(&d,7,2)
  16922.   SetEqual(/nvdate=%NV%DATE%/%ARESP%)
  16923.  endif
  16924. If(%RESP%)<>(Yes) then
  16925.   *ArtDate1
  16926.   Say(&CR&&15& Enter the date for this article: &14&*)
  16927.   Picture(##/##/##)
  16928.   DateOk(%RESP%)
  16929.   IfNotTrue(Goto(InvDate2))
  16930.   SetEqual(/nvdate=%RESP%)
  16931.  endif
  16932. Say(&CR&&15&Enter the title for this article: &14&*)
  16933. CAsk(%CRON%*)
  16934.  
  16935. return
  16936.  
  16937.  
  16938. *invdate
  16939. Say(&CR&&12&That date is invalid. Please re-enter a new date...)
  16940. Goto(Date)
  16941.  
  16942. *invdate2
  16943. Say(&CR&&12&That date is invalid. Please re-enter a new date...)
  16944. Goto(ArtDate1)
  16945. NEWSDISPCTLZ
  16946. ClearScr
  16947. InpOpen(%nv%newstemp%HDR%VAR%A.%VAR%B)
  16948. InpRead
  16949. SetEqual(/nvdate=%ARESP%)
  16950. Say(&15&%ARESP%)
  16951. InpRead
  16952. SetEqual(/nvtitle=%ARESP%)
  16953. Say(&14&%ARESP%)
  16954. InpClose
  16955. seek(%nv%newstemp%news%var%a.%var%b)
  16956. ifnottrue(zap(%nv%newstemp%news%var%a.%var%b,.))
  16957. View(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  16958. say(&CR&&11&[ Article %nv%curart% of %nv%highart% ])
  16959. Say(&15&Article Options: &3&(&11&N&3&)ext Article, (&11&P&3&)revious Article, (&11&E&3&)dit Article,)
  16960. Say((&11&A&3&)dd Article, (&11&K&3&)ill Article, (&11&U&3&)pdate Newsletter, (&11&S&3&)how Again, (&11&Q&3&)uit? &14&*)
  16961. MenuKey(%CRON%)
  16962.  
  16963. return
  16964. NEWSSAVECTLΘ
  16965. SetEqual(a=%NV%A%)
  16966. SetEqual(b=%NV%B%)
  16967. Say(&CR&&14&Updating Article...*)
  16968. Kill(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  16969. Capture(%nv%newstemp%NEWS%VAR%A.%VAR%B)
  16970. LoadSub(control\macros\justify.ctl)
  16971. SetNv(ntstatus=)
  16972. Say(Done!)
  16973.  
  16974. return
  16975. EXEXCTLreturn
  16976. return
  16977. COMMENTCTL7
  16978. *tt0
  16979. if (%nv%wipmode%)=(1) then goto (wipl)
  16980. ;if (%graphics%)=(WIP) then goto (wipl)
  16981. if (%graphics%)=(RIP) then clearscr
  16982. display(display\comment)
  16983. SetEqual(o=/:LASTMSG/)
  16984. setnv(lconf0=)
  16985. Say(&15&Would you like to leave a comment? (&12&Y&15&/&12&N&15&)&14&*)
  16986. Back(4)
  16987. YesNoAsk(*)
  16988. NotIf(%RESP%)=(Yes) then Return
  16989.  
  16990. *stc0
  16991. setnv(norefresh=)
  16992. loadsub(control\exitwip.ctl)
  16993. setnv(lconf0=/:lastmsg/)
  16994. If (&q)=(10) Then goto (lve)
  16995. setequal(t=%RESP%)
  16996. Say(&CR&&15&What is this comment about?&12&: &15&(                 )&14&*)
  16997. Back(18)
  16998. SetFill(Question)
  16999. cAsk(%CRON%%LEN%17%*)
  17000. killperc
  17001. if (%RESP%)=(<CR>) then goto (doret)
  17002. SetEqual(b=%RESP%)
  17003. SetEqual(/nvsubject=%RESP%)
  17004. SetActivity(Leaving comment...)
  17005. Log(--,Leaving Comment Re: %RESP%)
  17006. linefeed(1)
  17007.         
  17008.         *lve
  17009. setequal(a=%sysop%)
  17010. SetEqual(/nvaddressee=%sysop%)
  17011. SeekUser(%var%a)
  17012. SetEqual(c=%NDNUMB%)
  17013. SetEqual(/nvtousernum=%NDNUMB%)
  17014. SetEqual(/nvaddresser=%NAME%)
  17015. SetEqual(/nvccs=0)
  17016. SetEqual(/nvcc1=)
  17017. SetEqual(o=/:LASTMSG/)
  17018. SetEqual(/lastmsg=1)
  17019. SelArea(1)
  17020. SetEqual(y=0)
  17021. If (%ARESP%)=(No) Then SetEqual(c=0)
  17022. InitTxt
  17023. SetEqual(k=30)
  17024. LoadSub(control\macros\menter.ctl)
  17025. SetEqual(/lastmsg=%nv%lconf0%)
  17026. setnv(lconf0=)
  17027. SelArea(%ARESP%)
  17028. goto (doret)
  17029.  
  17030. *wipl
  17031. setnv(norefresh=1)
  17032. *tryagain0
  17033.    writeln(Would you like to leave a comment to the Sysop?)
  17034.    setequal(c=13~Would you like to leave a comment to the Sysop?~Comment to Sysop~2~)
  17035.    jump (wipc)
  17036.    *gi0
  17037.    comlineinput(180,l)
  17038.    if (%aresp%)=(24) then loadmem(control\timeout.ctl)
  17039.    *tryr
  17040.    setequal(r=%resp%)
  17041.    ascii
  17042.    if (%aresp%)=(21) then goto (tryagain0)
  17043.    if (%aresp%)=(6) then
  17044.      len(%var%r)
  17045.      if (%aresp%)=(1) then goto (gi0)
  17046.      get(&r,2,1000)
  17047.      setequal(/resp=%aresp%)
  17048.      goto (tryr)
  17049.    endif
  17050.    if (%resp%)<>(2) then return
  17051. goto (stc0)
  17052.  
  17053. *doret
  17054. if (%nv%wipe%)=() then return
  17055. setnv(wipe=)
  17056. setnv(wipmode=1)
  17057. return
  17058.  
  17059.  
  17060. *GCHAR
  17061. COMPRINT(%NV%TEXT%)
  17062. SETEQUAL(A=0)
  17063. DO
  17064. COMKEY
  17065. ASCII
  17066. IF(%ARESP%)=(21) THEN GOTO(GCHAR)
  17067. INC(A)
  17068. IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET
  17069. IF(%ARESP%)=(&B) THEN RET
  17070. IF(&A)>(200) THEN RET
  17071. IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%)
  17072. DELAY18TH(2)
  17073. LOOP
  17074. *WIPC
  17075. LOCALKEY(1)
  17076. IFNOTTRUE(GOTO(NOLKEY))
  17077. SYSKEYCHECK
  17078. SETEQUAL(/RESP=)
  17079. SETEQUAL(/RESP=)
  17080. *NOLKEY
  17081. CCARRIER
  17082. IF(%ARESP%)=(0) THEN GOTO (NOC0)
  17083. CHECKSUM(%VAR%C)
  17084. SETEQUAL(B=6)
  17085. SETNV(TEXT=$%ARESP%%VAR%C%C%13%)
  17086. SETNV(PBACK=)
  17087. JUMP(GCHAR)
  17088. IF(%ARESP%)<>(6) THEN JUMP(GCHAR)
  17089. setequal(c=%aresp%)
  17090. SETEQUAL(/IBUFF=%NV%PBACK%)
  17091. LEN(%NV%PBACK%)
  17092. SETEQUAL(/IBUFF0=%ARESP%)
  17093. SETEQUAL(/ARESP=%VAR%C)
  17094. RET
  17095. *NOC0
  17096. log(<<,Carrier lost.)
  17097. quitbbs
  17098.